将配置变量从package.json传递给Browserify

时间:2015-05-26 10:01:53

标签: node.js browserify package.json

是否可以通过' config' package.json变量的一部分要浏览吗?一切都来自'脚本'这样的部分:

"config": {
    "API": "somePathToAPI",
    "port": 9999
},
"scripts": {
    "prewatch:js": "browserify app/js/app.js -o out/bundle.js -d",
    "watch:js": "watchify app/js/app.js -o out/bundle.js -v -d",
    "start": "npm run watch:js"
}...

我们的想法是将API和端口变量都传递给Browserifys环境(例如,可以从window对象访问proccess.argv或process.env属性)。

我不确定它是否重要,但我尝试在Windows 7计算机上实现这一点。

或者这种方法可能是错误的,您使用其他技术来存储您的配置变量?

2 个答案:

答案 0 :(得分:0)

无法在客户端js代码中访问它们,但在服务器端代码:

var port = process.env.npm_package_config_port;
var api = process.env.npm_package_config_API;

编辑:您可以使用portAPI服务器端创建Cookie并将其发送给客户端。

答案 1 :(得分:0)

def add_arguments(self, parser): parser.add_argument('--url', action='store', required=True) parser.add_argument('--project', action='store', required=True) parser.add_argument('--continue-processing', action='store_true', default=False) parser.add_argument('--website', action='store', required=True) parser.add_argument('--title', action='store', required=True) parser.add_argument('--duplicate', action='store_true',default=False) 中的所有值都会导出到环境中。变量名称应为package.json$npm_package_config_API

您可以通过运行$npm_package_config_port来查看所有导出的变量。 (根据您的npm run env版本,您可能需要自行添加npm脚本:env

您甚至可以在脚本中覆盖变量,方法是在其前面加上您的包名和变量名。查看以下示例:NPM Config Variables

您可能还想查看Per-Package Config Settings

如果您只想查找转换以将环境保留为代码中的文字,请结帐envify