我的应用程序将给定语言的消息对象加载到应用程序中。我的结构是这样的:
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
答案 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
时使用--im
或MyApp.js
。所以你可以require
所有语言,当它们丢失时,它们仍然是undefined
。