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

3

这是错误日志

'.' 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" 
2个回答

7

你正在使用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",

1
我用你提供的脚本替换了原来的脚本,它可以正常运行,但是数据库无法连接。 - Yhomi
@Yhomi,你能连接到数据库了吗? - Codebling
1
是的,我不得不将脚本更改为上述内容。 - Yhomi

-1

./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",

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接