这真的很奇怪,我在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错误。
怎么回事?
答案 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>