IntelliJ(或Webstorm)无法识别来自systemJ的导入

时间:2016-06-08 15:25:29

标签: intellij-idea import webstorm

我不明白我怎么能让IntelliJ明白我的库是用SystemJS映射的。所以我在导入下得到一条红色波浪线,如下图所示:

intellij-error

但是,模块已正确加载,我可以使用它,即网站正在运行。 @angular/core似乎得到了承认。我在system.config.js中使用以下映射:

var map = {
    'app':                        '/ng2experiments/app', // 'dist',
    '@angular':                   '/ng2experiments/node_modules/@angular',
    'angular2-in-memory-web-api': '/ng2experiments/node_modules/angular2-in-memory-web-api',
    'rxjs':                       '/ng2experiments/node_modules/rxjs',
    'notifications':              '/ng2experiments/node_modules/angular2-notifications'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
    'notifications':              { main: 'components.js', defaultExtension: 'js' }
};

为什么@angular/core会被识别,而不是notifications

我在写这个问题时找到了答案。我会把它发布为Q& A,因为其他人可能觉得它很有用。

1 个答案:

答案 0 :(得分:2)

这是因为@angular/core是实际的文件夹名称,而notifications不是(它叫做angular2-notifications)。 IntelliJ / Webstorm对SystemJs一无所知。解决此问题的简单方法是更改​​SystemJs中的映射以使用与文件夹相同的名称。在这种情况下:

var map = {
    'app':                        '/ng2experiments/app', // 'dist',
    '@angular':                   '/ng2experiments/node_modules/@angular',
    'angular2-in-memory-web-api': '/ng2experiments/node_modules/angular2-in-memory-web-api',
    'rxjs':                       '/ng2experiments/node_modules/rxjs',
    'angular2-notifications':     '/ng2experiments/node_modules/angular2-notifications'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
    'angular2-notifications':     { main: 'components.js', defaultExtension: 'js' }
};

IntelliJ / Webstorm应该开箱即可查看所有文件夹名称,然后识别模块:

intellij solved

相关问题