通过命令行传递“global”和“ignore”选项给browserify

5

我正在使用browserify和babelify来转译JS文件。JS文件中require()了一个在node_modules中的组件,我也想进行转译。

根据babelify的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的选项中无法找到global的文档,尽管babelify的自述文件提到了它。我尝试使用--global-transform并给它想要转译的模块名(fluent),但遇到了意外输出的fluent包对象。需要一个变换函数。

1个回答

1

看起来在命令行上无法使用普通的正则表达式。

但您可以发挥创意,使用反向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 ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接