Npm 脚本失败 - '.'未被识别为内部或外部命令



这是错误日志

'.' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! cloudenly-hr-microservice@1.0.0 prestart: `sequelize db:migrate  && ./node_modules/.bin/sequelize db:seed:all`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the cloudenly-hr-microservice@1.0.0 prestart script.

脚本

"lint": "eslint",
"test": "export NODE_ENV=test && mocha --timeout 100000",
"prestart": "./node_modules/.bin/sequelize db:migrate  && ./node_modules/.bin/sequelize db:seed:all",
"start": "./node_modules/pm2/bin/pm2 start pm2server.config.js",
"poststart": "./node_modules/pm2/bin/pm2 log HumanR" 

您在Windows上,但试图运行为linux设计的脚本(它有linux路径分隔符,这会混淆Windows)。

在npm脚本中,你可以通过名称来引用本地安装的二进制包。这样做可以消除路径问题。

"test": "export NODE_ENV=test && mocha --timeout 100000",
"prestart": "sequelize db:migrate  && sequelize db:seed:all",
"start": "pm2 start pm2server.config.js",
"poststart": "pm2 log HumanR" 

您可能还会遇到export NODE_ENV=test命令的问题。你需要cross-env

npm install --save-dev cross-env

然后在package.json中:

"test": "cross-env NODE_ENV=test mocha --timeout 100000",

"./node_modules/.bin/sequelize db:migrate && ./node_modules/.bin/sequelize db:seed:all"中是否存在.bin文件夹?

我在一个项目中有类似的东西,但我这样做:

"db:seed": "npm run _db -- db:seed:all",
"db:create": "npm run _db -- db:create",
"db:migrate": "npm run _db -- db:migrate",
"db:init": "./scripts/create_and_seed_db.sh",
"_db": "node ./node_modules/sequelize-cli/lib/sequelize",

最新更新