Browserify动态单独捆绑

时间:2015-06-10 08:53:00

标签: javascript browserify commonjs

我的应用程序将给定语言的消息对象加载到应用程序中。我的结构是这样的:

Product

语言文件非常大,所以我想创建单独的包,然后只包含您需要的文件/lang /en.js (100 kb file) /ru.js (100 kb file) /... many more app.js (this is `MyApp` as below) 。语言也可以随时在应用程序中“切换”。

我如何告诉browserify为所有语言文件构建主应用程序和单独的包,并且仍允许<script src="lang/en.js"></script> MyApp这些语言文件?

require

1 个答案:

答案 0 :(得分:2)

您可以在-r命令中使用-x(require)和browserify(external)将所有语言与主应用分开。

将语言捆绑到一个文件中,可能如下所示:

browserify -r ./lang/en.js -r ./lang/ru.js > languages.js
  

建议:您可以使用上述命令为每个语言文件创建单独的包。只需使用-r一次。

然后在 languages.js之前的html页面中添加新文件(MyApp.js)。然后,您必须在构建MyApp.js时忽略它们。

browserify --ignore-missing -x ./lang/en.js -x ./lang/ru.js -d app.js > MyApp.js

您仍然可以require这些语言。

  

注意:如果您为每种语言设置了单独的捆绑包(请参阅RECOMMENDED),则只允许您在主应用中添加require个。

lang/中的每个文件都没有自动执行此操作的方法。

  

我建议您编写一个*.cmd(批处理)文件,为lang/中的每个语言文件执行上述命令。所以你仍然可以包括你偏爱的语言。

编辑:捆绑--ignore-missing时使用--imMyApp.js。所以你可以require所有语言,当它们丢失时,它们仍然是undefined