node-packge.json脚本-将命令添加到现有脚本中



我想向"开始";脚本,所以当我执行npm start时,首先要运行的是npm install

我的package.json如下所示:

.
.
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "DEBUG=my-app node src/index.js",
"dev": "nodemon src/index.js"
},
.
.
.

我考虑在start脚本中添加npm install

"start": "npm install DEBUG=my-app node src/index.js",

但这不起作用,所以我想得到一个建议,无论这是否可能。。

我认为您只使用&conector。类似:

"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "npm install && DEBUG=my-app node src/index.js",
"dev": "nodemon src/index.js"
}
Andy是的,我的应用程序应该用一个命令部署一次。

这是一个相当沉重/缓慢的启动,在启动应用程序之前安装所有模块。

这意味着,如果我更改了节点服务器中的某些代码,停止进程并再次运行,就会进行完全安装。我意识到您有一个带有nodemon的开发脚本,但仍然如此。

另一种情况是:如果你的应用程序在实时服务器上崩溃,你需要重新启动它,那么就会进行完全安装。如果一个模块升级了补丁或小版本,会发生什么。这意味着您将启动一个具有不同依赖关系的项目。

如果你在ci/cd中这样做,那么通常会拆分一个管道:

  1. 安装-npm ci
  2. 构建/编译-例如,如果您有typescript(而不是您的情况(
  3. 运行所有测试
  4. 使用npm修剪删除devDependencies
  5. 启动流程

你可能会做的是有一个名为";管道";或者什么的,然后叫它。

"pipeline": npm ci && npm run build && npm test && npm prune && npm start

然后将在管道代码中调用此脚本。

最新更新