由于某种原因,babel
不会忽略node_modules
目录,尽管我在"ignore"
文件的.babelrc
字段中指定了它。为什么会这样?如何使babel
按预期行事?
我的目标是在将应用程序推送到远程仓库然后再推送到服务器之前,压缩和修改ExpressJS应用程序中的所有.js
文件(特别是我的所有后端代码)。我使用babel
和babili
。
这是我的.babelrc
配置:
{
"presets": [
["latest", {
"modules": false
}]
],
"env": {
"development": {
"presets": ["stage-0", "react", "babili"]
},
"production": {
"presets": ["stage-0", "react", "babili"]
}
},
"ignore": [
"node_modules",
"assets",
"view",
"public",
"test",
"spec",
"logs",
"lib/jasmine_examples",
"db"
]
}
我从命令行运行babel
,如下所示:
./node_modules/.bin/babel . -d ~/app_compressed/
babal
开始压缩node_modules
目录:
node_modules\apache-crypt\gensrc\index.js -> C:\Users\user\app_compressed\node_modules\apache-crypt\gensrc\index.js
node_modules\apache-md5\gensrc\index.js -> C:\Users\user\app_compressed\node_modules\apache-md5\gensrc\index.js
node_modules\babel-preset-env\data\built-in-features.js -> C:\Users\user\app_compressed\node_modules\babel-preset-env\data\built-in-features.js
node_modules\babel-preset-env\data\plugin-features.js -> C:\Users\user\app_compressed\node_modules\babel-preset-env\data\plugin-features.js
node_modules\babel-preset-env\lib\default-includes.js -> C:\Users\user\app_compressed\node_modules\babel-preset-env\lib\default-includes.js
node_modules\babel-preset-env\lib\index.js -> C:\Users\user\app_compressed\node_modules\babel-preset-env\lib\index.js
字面意思错误的行为。怎么解决?如何使babel
忽略config中指定的文件夹?
答案 0 :(得分:5)
忽略获取正则表达式数组,因此请尝试
ignore: [
/node_modules/,
...,
]
或者您可以通过这样的回调函数
ignore: [
/node_modukes/,
function(filepath) {
return filepath !== "/path/to/es6-file.js";
},
]
答案 1 :(得分:4)
Babel开发团队说有一个错误,配置文件中的ingnored
现在不起作用。
但是,我发现如果在命令行中传递被忽略的目录(使用--ignored
选项),一切正常,正如预期的那样。您甚至可以在命令行中传递globs,例如**/drafts
./node_modules/.bin/babel . -d ~/app_compressed/ --ignore node_modules,test,assets,stuff,views,public,test,spec,logs,lib/jasmine_examples,db,routes/api/drafts,**/drafts
答案 2 :(得分:0)
将Vue
项目从Cloud9
的环境移到我的PC并安装了npm
依赖项后,我遇到了同样的问题。
通过以下方式解决此问题:
Node.js
Vue CLI
,然后在build
中运行Vue UI
。我不确定有什么帮助。