安装angular2-notifications后运行lint失败

时间:2017-06-01 00:48:44

标签: angular npm lint tslint

我最近使用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命令有效。

我的问题是,我在这里遗失了什么吗?我需要这个命令才能工作,我不认为修改包是一个可以接受的解决方案。这是包装本身的一个错误,我应该向他们报告吗?

谢谢

3 个答案:

答案 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"
],