【问题标题】:WebStorm is not recognizing external library globalsWebStorm 无法识别外部库全局变量
【发布时间】:2017-07-10 18:06:31
【问题描述】:

我正在 WebStorm 中使用 AngularJS (1.6.5) 开展一个小项目。这里的问题是 WebStorm 无法识别 AngularJS 定义的任何全局变量。我安装了 AngularJS 和正确的@types。我还将 AngularJS 定义为 外部库,并且我还确保 AngularJS 不是 excluded by WebStorm。然而 WebStorm 仍然给我错误。

例子:

logConfig.$inject = ["$logProvider", "$compileProvider"];
function logConfig($logProvider: ng.ILogProvider, $compileProvider: ng.ICompileProvider) {
    // $logProvider.debugEnabled(false); //TODO add this in production
    // $compileProvider.debugInfoEnabled(false); //TODO add this in production

    // Disable comment and class directives. Boosts the performance
    $compileProvider.commentDirectivesEnabled(false);
    $compileProvider.cssClassDirectivesEnabled(false);
}

上面的代码在 WebStorm 中得到以下错误:Unresolved variable $inject。 ($inject 是红色的,当我将鼠标悬停在它上面时会给出消息)

我错过了什么吗?


更新

我可能发现了问题。 WebStorm 不会重新调整 AngularJS,即使它在我的 Node_modules 中,我有正确的类型(@types/angular)并且我已注册为外部库(文件-->设置-->语言和框架-->JavaScript- ->图书馆)。

当我输入import * as ng from "an|" 并点击“ctrl + space”时,WebStorm 并没有给我任何关于 Angular 库的提示。我猜这些问题是有联系的。

有人知道是否有其他选项可以让 WebStorm 重新调整 AngularJS 的大小?

【问题讨论】:

  • 您能否展示一下 logConfig 是如何定义的,以及当您在 cmd 上单击它时 IDE 如何看到它的定义。到目前为止,我们没有运气重现这个问题。所有在 foo.bar = [] 中定义为 bar 的符号都被 IDE 视为一个新符号。
  • @EkaterinaPrigara,当我回到家时,我会发布 logConfig(在哪里可以找到它?)。我可能已经找到了问题,但我不知道如何解决它。当我键入“i​​mport * as ng from "angular"”时,WebStorm 不会重新调整(不给出任何提示)关于 Angular 的大小。所以它不会重新调整库。它在我的 node_module 以及 @types/angular 中。我还在 WebStorm 中将该库注册为 Angular 模块(文件-->设置-->语言和框架-->JavaScript-->库)
  • 抱歉,我错过了您使用的是 TypeScript 代码而不是 JavaScript 代码这一点。对于 TypeScript,Libraries 配置不适用。请确保您的项目中有一个 tsconfig.json 文件。这是任何 TypeScript 项目的要求。还请确保在 Preferences | 中启用了 TypeScript 服务。语言和框架 |打字稿
  • 请将解决方案作为答案发布,而不是作为问题的更新。这是为了避免混淆。你可以看到我已经回滚了你的编辑。检查revisions。谢谢。

标签: angularjs typescript webstorm


【解决方案1】:

我找到了解决问题的方法:

就像Ekaterina Prigara 所说,不知何故我的 TSLint 被禁用了。我需要通过Settings | Languages & Frameworks | TypeScript | TSLint 重新启用它。重新启用它后,我重新启动了 WebStorm 并收到错误:错误:Initialization error (typescript). Cannot read property 'createHash' of undefined。然后我删除了我的 node_modules 文件夹并通过 npm install 重新安装了它。之后一切都恢复正常了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多