Javascript 如何使用Babel将所有包含的文件编译成一个文件?
我正在我的项目中使用巴贝尔。问题是,我的Javascript 如何使用Babel将所有包含的文件编译成一个文件?,javascript,node.js,ecmascript-6,babeljs,Javascript,Node.js,Ecmascript 6,Babeljs,我正在我的项目中使用巴贝尔。问题是,我的server.js中有这行代码: import schema from "./data/schema"; (data/schema.js采用ES2015语法) 当我试图用babel编译我的server.js时,如下所示: babel -o server_production.js --minified server.js 它生成一个没有错误的新文件,并将导入指令替换为要求。但问题是,当我试图用节点运行babel编译的server.js时,它会抱怨数据
server.js中有这行代码:
import schema from "./data/schema";
(data/schema.js
采用ES2015语法)
当我试图用babel编译我的server.js
时,如下所示:
babel -o server_production.js --minified server.js
它生成一个没有错误的新文件,并将导入
指令替换为要求
。但问题是,当我试图用节点运行babel编译的server.js
时,它会抱怨数据/schema.js
,因为它没有被传输到ES5中,只是需要(确切的错误是意外的标记“导入”
,因为我在数据/schema.js
中使用了一些其他导入)
所以,问题是:如何将我的文件和它导入的所有文件编译成一个文件?我尝试了babel-o server\u production.js——缩小数据/schema.js server.js
,但也没有成功。babel默认情况下不捆绑依赖项。您需要使用模块绑定器,如
为此,您需要定义一个与此类似的rollup
配置:
rollup.config.js
import babel from 'rollup-plugin-babel';
import babelrc from 'babelrc-rollup';
export default {
entry: 'server.js',
dest: 'server_production.js',
plugins: [
babel(babelrc())
]
};
这适用于下面定义的package.json
文件:
{
"scripts": {
"rollup": "./node_modules/.bin/rollup -c"
},
"devDependencies": {
"babel-cli": "6.14.0",
"babel-plugin-external-helpers": "6.8.0",
"babel-preset-es2015": "6.14.0",
"babelrc-rollup": "3.0.0",
"rollup": "0.35.10",
"rollup-plugin-babel": "2.6.1"
}
}
您可以执行命令npm run rollup-c
来绑定和编译文件
您可以在这里找到一个示例:您可以使用以下解决方案使用Babel将所有包含的文件编译成一个文件:
npx babel src --out-file script-compiled.js
我不认为巴贝尔做依赖性分析。您必须指定要转换的所有文件。npm run rollup
足够了吗有人更新了Babel 7的此过程吗?具体来说,rollup.config.js
需要不同的属性,而babel plugin external helpers
不再兼容。我们很高兴最终发现有人尝试了同样的方法,但却对一个3年前就已经过时的答案感到失望。我得到了[!]错误:您必须提供选项。输入到rollup