2

是否可以将 package.json 变量的“配置”部分中定义的内容传递给 browserify?一切都从“脚本”部分运行,例如:

"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 环境(例如可从窗口对象访问的 proccess.argv 或 process.env 属性)。

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

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

4

2 回答 2

0

您中的所有值package.json都将导出到环境中。变量名应该是$npm_package_config_APIand $npm_package_config_port

您可以通过运行查看所有导出的变量npm run env(根据您的版本npm,您可能需要自己添加env脚本"scripts": { "env": "env" }:)

你甚至可以在脚本中覆盖变量,方法是在它们前面加上你的包名和变量名。在此处查看示例:NPM 配置变量

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

如果您只是在寻找一种转换以将环境保持为代码中的文字,请检查envify

于 2015-08-10T12:05:49.417 回答
-1

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

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

编辑:您可以在服务器端创建一个 cookieport并将其发送到客户端。API

于 2015-05-27T11:30:47.393 回答