Babel ignore several directories

2019-02-16 08:09发布

问题:

I'm currently running Babel with a simple command :

$ babel . --ignore node_modules --out-dir dist

But I can't find a way to ignore several directories (node_modules, test), I tried a lot of things, including (in .babelrc):

  "ignore": "node_modules"
  "ignore": "/node_modules/"
  "ignore": "node_modules/**"
  "ignore": ["node_modules"]

Which doesn't work at all (node_modules are transpiled). Isn't there a simple way to achieve this (with Babel 6)?

回答1:

You should be able to use commas in the cli

babel . --ignore node_modules,test --out-dir dist



回答2:

Note that there's a known bug in babel, where it ignores only and ignore in .babelrc.

The relevant bug is T6726, which has been fixed in babel 6.14.0.



回答3:

You can ignore multiple directories and specify a globbing pattern within the .babelrc file like this

{
    ...,
    "ignore": [
        "node_modules",
        "dir_2",
        "dir_3/**/*.js"
    ]
}

Reference: https://babeljs.io/docs/en/babelrc



回答4:

With Babel 7 you need to use a glob pattern:

babel . --ignore */node_modules,*/test --out-dir dist