Babel不会忽略node_modules目录,尽管它位于"ignore"配置中

Gre*_*een 6 compression minify babel node.js babeljs

出于某种原因babel不会忽略node_modules目录,虽然我在文件"ignore"字段中指定了它.babelrc.为什么会这样?如何babel按预期行事?

我的目标是压缩和破坏.js我的ExpressJS应用程序中的所有文件(特别是我的所有后端代码),然后再将我的应用程序推送到远程仓库,然后再推送到服务器.所以我用babelbabili.

这是我的.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"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我从命令行运行babel如下:

./node_modules/.bin/babel . -d ~/app_compressed/
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

字面意思错误的行为.怎么解决?如何babel在config中指定忽略文件夹?

Gre*_*een 5

Babel开发团队说存在一个错误,并且ingnored配置文件现在不起作用。

但是,我发现,如果您在命令行(带有--ignored选项)中传递了被忽略的目录,则所有工作都可以正常进行。您甚至可以在命令行中传递glob,例如**/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
Run Code Online (Sandbox Code Playgroud)


小智 5

忽略获取正则表达式数组,因此请尝试这样

ignore: [
 /node_modules/,
 ...,
]
Run Code Online (Sandbox Code Playgroud)

或者你可以像这样传递一个回调函数

ignore: [
   /node_modukes/,
   function(filepath) {
      return filepath !== "/path/to/es6-file.js";
   },
]
Run Code Online (Sandbox Code Playgroud)