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错误。
怎么来的?
由于使用globbing, npm
有很多众所周知的问题。 它们中的许多仅仅影响Windows,而另一些则“仅仅”是特定于shell的。
尝试以下。
"scripts": { "lint": "./node_modules/tslint/bin/tslint \"src/**/*.ts\"", },
如果这并没有立即说服你,计算机已经成为人类的灾难,你可以更多地了解为什么这些问题出现在梦幻般的Linux编程接口中 ,这个接口包含了非常多的非Linux可移植性问题,比如这个。
使用npm run lint默认为本地项目目录的node_modules中的tslint,而使用tslint src / js / ** / *默认为全局中的那个,则应检查是否存在可能导致差异的版本不匹配在规则
使用npm-run-scripts
你可以省略./node_modules/.bin
因为npm将首先在那里查找。