如何将browserify --require文件传递给角度模块?

时间:2016-10-19 15:27:39

标签: javascript angularjs node.js npm browserify

我已经使用NPM设计了一个Angular SPA的构建版本来调用browserify脚本来捆绑它,即你可以从终端npm run build:js运行,它在package.json中调用以下脚本:

"build:js": "browserify -r ./params-dev.js -e src/app/index.js -o build/index.js"  

我现在要做的是为prod和QA创建两个不同的配置对象。每个文件都需要一个不同的文件:params-dev.jsparams-prod.js(如上面的命令中所示)。

我想知道如何在生成的包中访问这些变量?它们是特定于环境的,其中一些指向分析代码等。此外,我试图将它们移出它们目前居住的全球范围。

以下是我希望包含在包中的params文件的示例。将有一个用于生产,一个用于质量保证:

var merge = require('merge'),
    params = require('./params')

exports.config = merge(params, {
    env: 'prod',
    analyticsCode: 'blah08yweblah2e823lnblah',
    otherProps: '...etc...'
})

那么我现在如何在AngularJS模块中访问这些变量?我觉得我在这里遗漏了一些明显的东西。

有人有什么想法吗?如果您需要更多信息,请与我们联系。

如果有帮助,我的index.js看起来像

(function () {
    // common app require statements
    require('blah')
    require('blah-2')
    angular.module('app', [require('angular-route')])
    // etc etc
})()

1 个答案:

答案 0 :(得分:0)

我明白了。 :)如果我将目标添加到命令中所需文件路径的末尾,如下所示:

"build:js": "browserify -r ./params-dev.js:params -e src/app/index.js -o build/index.js"

我可以通过将var params = require('params')添加到我的角度文件来访问该对象。