我需要动态更新node.js package.json 如果我用param A运行npm start它会安装
例如,如果我运行 npm start A ,它将启动
{
"name": "simplenodeapp",
"main": "app.js",
"scripts": {
"start": "node app.js" <some param",
},
"license": "ISC",
"dependencies": {
"express":"*"
},
}
如果我跑 npm start B
{
"name": "simplenodeapp",
"main": "app.js",
"scripts": {
"start": "node app.js" <some param>",
},
"license": "ISC",
"dependencies": {
"HAproxy":"*"
},
}
有可能吗?我需要以编程方式进行...
答案 0 :(得分:1)
更新:
我希望我终于明白被问到的问题。
NPM允许您定义配置对象并传入动态参数。这些可以单独使用,也可以组合使用。
在下面的评论中,OP询问如何使用两个不同的文件名运行节点。这可以通过两种不同的方式实现。
选项1:
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"author": "Skyler Hair",
"license": "MIT",
"config": {
"A": "index.js",
"B": "app.js"
},
"scripts": {
"start:A": "node $npm_package_config_A",
"start:B": "node $npm_package_config_B"
}
}
npm run start:A
或npm run start:B
选项2:
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"author": "Skyler Hair",
"license": "MIT",
"scripts": {
"start": "node"
}
}
npm run start -- index.js
或npm run start -- app.js
原始回答:
您可以创建一个运行npm install
的脚本,并将依赖项作为参数接受。例如,
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"author": "Skyler Hair",
"scripts": {
"install": "npm install"
}
}
可以使用
运行 npm run install -- express <other dependency> <another dep>