我最近使用Angular-CLI创建了一个新的Angular4项目。
我遇到的问题是在安装angular2-notifications之后,运行ng lint
命令时出错。
错误:
无法加载C:\ Users \ Gabriel \ Documents \ GitHub \ Go-NoGo \ GoNoGo \ node_modules \ angular2-notifications \ tslint.json:找不到自定义规则目录:C:\ Users \ Gabriel \ Documents \ GitHub \ GoNoGo \ GoNoGo \ node_modules \ angular2-通知\ node_modules \ codelyzer
Stacktrace:
at new FatalError (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\tslint\lib\error.js:40:23)
at Object.findConfiguration (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\tslint\lib\configuration.js:47:15)
at files.forEach (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\tasks\lint.js:36:50)
at Array.forEach (native)
at lintConfigs.map (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\tasks\lint.js:30:19)
at Array.map (native)
at Class.run (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\tasks\lint.js:21:14)
at Class.run (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\commands\lint.js:45:25)
at Class.Command.validateAndRun (C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\ember-cli\lib\models\command.js:128:15)
at C:\Users\Gabriel\Documents\GitHub\Go-NoGo\GoNoGo\node_modules\@angular\cli\ember-cli\lib\cli\cli.js:92:22
我已经转向谷歌这个问题,没有任何运气。我去过GitHub repo并且也没有运气。
然后我进入了angular2-notifications包的实际tslint.json
文件。
我在顶部看到了这个:
"rulesDirectory": [
"node_modules/codelyzer"
],
当我删除这3行时,ng lint
命令有效。
我的问题是,我在这里遗失了什么吗?我需要这个命令才能工作,我不认为修改包是一个可以接受的解决方案。这是包装本身的一个错误,我应该向他们报告吗?
谢谢
答案 0 :(得分:8)
从angular-cli.json中的lint配置中排除node_modules:
"lint": [
{
"project": "src/tsconfig.app.json",
"exclude": "**/node_modules/**/*"
},
{
"project": "src/tsconfig.spec.json",
"exclude": "**/node_modules/**/*"
},
{
"project": "e2e/tsconfig.e2e.json",
"exclude": "**/node_modules/**/*"
}]
angular2-notifications项目显然不应该破坏用户的lint。尽管如此,我认为一个项目不应该尝试不应该编辑的lint代码也是公平的。
答案 1 :(得分:0)
我收到消息的原因是缺少node_modules
目录。我运行npm install
后,问题消失了。
答案 2 :(得分:0)
我遇到了同样的问题,我通过为 node_modules 提供正确的路径找到了解决方案。
我的意思是我的项目是一个带有 Angular 的 ASP.net - 其中目录结构是自定义的,“package.json”保存在 angular 应用程序之外,因此 node_modules 也驻留在存在“package.json”的同一目录中。
所以我能够通过将 tslint.ts 中的“node_modules”路径更改为
"rulesDirectory": [
"./../node_modules/codelyzer"
],