Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果express服务器使用package.json中的脚本运行,它将赢得';不上来_Node.js_Express_Pm2 - Fatal编程技术网

Node.js 如果express服务器使用package.json中的脚本运行,它将赢得';不上来

Node.js 如果express服务器使用package.json中的脚本运行,它将赢得';不上来,node.js,express,pm2,Node.js,Express,Pm2,web服务器一切正常。 但当我使用package.json中的脚本运行某些命令时,会出现404错误 下面是ecosystem.config.js文件配置 module.exports = { apps : [{ name: 'test', script: './bin/www', instances: 1, exec_mode : "cluster", autorestart: true, watch: false, args: ["m

web服务器一切正常。
但当我使用package.json中的脚本运行某些命令时,会出现404错误

下面是ecosystem.config.js文件配置

module.exports = {
  apps : [{
    name: 'test',
    script: './bin/www',
    instances: 1,
    exec_mode : "cluster",
    autorestart: true,
    watch: false,
    args: ["master"],
    log_date_format: "YYYY-MM-DD HH:mm:ss.SSS",
    max_memory_restart: '1G',
  },
  {
    name: 'test',
    script: './bin/www',
    instances: 7,
    exec_mode : "cluster",
    autorestart: true,
    watch: false,
    args: ["slave"],
    log_date_format: "YYYY-MM-DD HH:mm:ss.SSS",
    max_memory_restart: '1G',
  }]
};
下面是我测试的package.json中的脚本

"cross-env NODE_ENV=production pm2 start ecosystem.config.js" // success
"cross-env NODE_ENV=production pm2 delete test & pm2 start ecosystem.config.js" // fail
"cross-env NODE_ENV=production pm2 delete test && pm2 start ecosystem.config.js" // fail
"cross-env NODE_ENV=production node ./bin/www" // success
“test”是ecosystem.config.js的name属性的值。
运行“pm2 start econosystem.config.js”,它应该可以工作。
但是,同时使用“pm2 delete test”命令会在web服务器上导致404错误。
命令“pm2删除测试”正常运行。实际上,我看到“测试”进程在消失后再次运行。

我不知道为什么会发生这种情况。

你可以做一件事,我不知道它是对是错,但是在一个脚本中保持pm2脚本的独立,在第二个脚本中设置的交叉环境生成第三个脚本,运行这两个脚本

例如

test1: "cross-env NODE_ENV=production",
test2: "pm2 delete test && pm2 start ecosystem.config.js",
test3: "npm run test1 && npm run test2"

你可以做一件事,我不知道它是对是错,但是在一个脚本中保持pm2脚本的独立性,在第二个脚本中设置跨环境,生成第三个脚本,使用&&&运行这两个脚本。我希望如此helps@yashvadhvani英雄联盟正如您所说,在命令前面设置交叉环境之后效果非常好。非常感谢你解决了我的问题。@yashvadhvani当然。谢谢你的帮助。