通过命令行将 "global" 和 "ignore" 选项传递给 browserify

Passing "global" and "ignore" options to browserify via the command line

我正在使用带有 babelify 的 browserify 来转换 JS 文件。 JS 文件 require()node_modules 中的一个组件,我也想转译它。

根据 FAQ on babelify's GitHub,为了实现这一点,我应该使用 globalignore 选项来指定 node_modules 中的哪个文件夹也应该被转译:

browserify().transform("babelify", {
  global: true,
  ignore: /\/node_modules\/(?!app\/)/
});

我正在通过命令行使用 browserify,但我不知道如何传递这些选项。我也对这些选项是否特定于 browserify 感到困惑或 babelify.

这是我的命令 运行:

browserify -t [ babelify ] input.js > output.js

这是我的 .babelrc

{
  "presets": [
    [ "@babel/preset-env",
      {
        "targets": "defaults, ie >= 11"
      }
    ]
  ],
  "plugins": [ "@babel/plugin-proposal-object-rest-spread" ]
}

我在 browserify's options 的任何地方都找不到 global 的记录,即使 babelify 自述文件提到了它。我尝试了 --global-transform 并给了它我想要转译的模块名称(流畅),但是得到了 Unexpected object exported by the fluent package. Expected a transform function.

似乎无法在命令行上使用正常的正则表达式。

但你可以发挥创意并使用逆only:

browserify -t [ babelify --global --only [ your-main-js-directory node_modules\/app ] --presets [ @babel/preset-env ] ] input.js > output.js

您可以像这样指定更多包:

--only [ your-main-js-directory node_modules\/app node_modules\/another-app ]