使用纯npm脚本创建vendor.js包

时间:2016-03-14 20:29:33

标签: javascript node.js browserify

我正在尝试使用现代方法来构建没有Grunt或Gulp的javascript应用程序。我只是使用scripts中的package.json关键字来创建构建实用程序。

效果很好,但我遇到了挑战。是否有一种很好的方法可以创建单独的vendor.jsapp.js包而不在browserify命令中显示每个依赖项(或者将deps列表传递给browserify命令)?

好于:

"dependencies": {
   "react": "latest",
   "react-dom": "latest",
   "redux": "latest",
   "d3": "latest"
},
"devDependencies": {
   "browserify": "latest" 
},
"scripts": {
   "vendor": "browserify -r react -r react-dom -r redux -r d3 > vendor.js",
   "app": "browserify -x react -x react-dom -x redux -x d3 ./app/main.js > app.js"
}

最好,我会回收dependencies关键字中存储的信息。显然,我不希望我的代码中没有使用bundle devDependencies或依赖项(即使后者可以通过良好维护需求来防止)。

1 个答案:

答案 0 :(得分:1)

是的,有可能。无论解决方案是否非常优雅,我都会由您决定。基本上它归结为类似以下内容(不完整,浏览器尚未调用)的片段:

compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'

init脚本用于提取依赖项。供应商脚本调用此脚本,并将其转换为browserify的输入参数。

注1:我正在使用jq从依赖关系树中提取信息。 注2:参数列表的构造也可以在init脚本中完成。您必须提供一个环境变量来区分-r或-x选项。