npm run" script"没有做任何事情

时间:2017-07-12 04:01:45

标签: node.js npm

这真的很奇怪,我在package.json中有以下脚本:

"scripts": {
   "lint": "./node_modules/tslint/bin/tslint src/js/**/*",
   "lint:fix": "./node_modules/tslint/bin/tslint src/js/**/* --fix"
},

当我运行npm run lint时,我没有收到任何错误,并在展示echo $?后立即运行0

但是,如果我运行tslint src/js/**/*,我确实会遇到linting错误。

怎么回事?

3 个答案:

答案 0 :(得分:1)

使用globbing在npm中出现了许多众所周知的问题。其中许多专门影响Windows,而其他人只是"仅仅"壳特定的。

请尝试以下操作。

"scripts": {
   "lint": "./node_modules/tslint/bin/tslint \"src/**/*.ts\"",
},

如果这并没有立即说服你,计算机已成为人类的灾难,你可以在梦幻般的 The Linux Programming Interface 中了解更多有关这些问题的原因。涵盖了令人惊讶的非Linux可移植性问题,例如此问题。

答案 1 :(得分:0)

使用npm run lint默认为本地项目目录的node_modules中的tslint,而使用tslint src / js / ** / *默认为全局中的tslint,应检查是否存在版本不匹配可能会导致规则的差异

答案 2 :(得分:0)

使用npm-run-scripts,您可以省略./node_modules/.bin,因为npm会首先查看。{/ p>