Angular 2多个模块,名称仅在套管

时间:2017-02-01 22:24:49

标签: javascript angular typescript webpack

编译期间出现以下警告:

  警告在./src/app/state/actions/userClass.ts中有多个   名称仅与套管不同的模块。这可能会导致   与其他文件系统一起编译时的意外行为   案例语义。使用相同的套管。比较这些模块标识符:   * /Users/smp/Projects/training3/node_modules/@angularclass/hmr-loader/index.js!/Users/smp/Projects/training3/node_modules/awesome-typescript-loader/dist/entry.js?{configFileName:   “tsconfig.webpack.json”}!/用户/ SMP /项目/ training3 / node_modules / angular2模板装载机/ index.js!/用户/ SMP /项目/ training3 / node_modules /角路由器装载机/ src目录/索引?.js文件加载=系统和放大器; genDir =编译和放大器;!AOT =假/Users/smp/Projects/training3/src/app/state/actions/UserClass.ts       由1个模块使用,i。即       /Users/smp/Projects/training3/node_modules/@angularclass/hmr-loader/index.js!/Users/smp/Projects/training3/node_modules/awesome-typescript-loader/dist/entry.js?{configFileName:   “tsconfig.webpack.json”}!/用户/ SMP /项目/ training3 / node_modules / angular2模板装载机/ index.js!/用户/ SMP /项目/ training3 / node_modules /角路由器装载机/ src目录/索引?.js文件加载=系统和放大器; genDir =编译和放大器;!AOT =假/Users/smp/Projects/training3/src/app/features/portal/content/tabs/userclasses/userclasses.component.ts   * /Users/smp/Projects/training3/node_modules/@angularclass/hmr-loader/index.js!/Users/smp/Projects/training3/node_modules/awesome-typescript-loader/dist/entry.js?{configFileName:   “tsconfig.webpack.json”}!/用户/ SMP /项目/ training3 / node_modules / angular2模板装载机/ index.js!/用户/ SMP /项目/ training3 / node_modules /角路由器装载机/ src目录/索引?.js文件加载=系统和放大器; genDir =编译和放大器;!AOT =假/Users/smp/Projects/training3/src/app/state/actions/userClass.ts       由3个模块使用,i。即       /Users/smp/Projects/training3/node_modules/@angularclass/hmr-loader/index.js!/Users/smp/Projects/training3/node_modules/awesome-typescript-loader/dist/entry.js?{configFileName:   “tsconfig.webpack.json”}!/用户/ SMP /项目/ training3 / node_modules / angular2模板装载机/ index.js!/用户/ SMP /项目/ training3 / node_modules /角路由器装载机/ src目录/索引?的.js装载机=系统&安培; genDir =编译&安培;!AOT =假/Users/smp/Projects/training3/src/app/state/effects/userClass.ts

9 个答案:

答案 0 :(得分:39)

我的档案名称很好。这个问题突然出现,因为在我的一个导入中我大写了UserClass:

import * as userClassActions from '../../../../../state/actions/UserClass';

将导入更改为以下后,错误消失了:

import * as userClassActions from '../../../../../state/actions/userClass';

答案 1 :(得分:9)

由于编写导入文件时出错,我遇到了同样的错误。

检查您是否写过文字-> 从“ @ angular / Router”导入{RouterModule};

现在,将其更改为-> 从“ @ angular / router”导入{RouterModule};

这解决了我的问题。希望它也对您有用。

请参阅下面的图片以更清晰

  1. https://i.stack.imgur.com/wS1nh.png

  2. https://i.stack.imgur.com/GyDGs.png

答案 2 :(得分:1)

如果您使用 Visual Studio代码进行编码,则可能有时会用大写字母添加路径,而有时用小写字母添加路径。

在我的情况下,由于 Angular Material 组件是从'@angular/material'的某些文件中导入的,而另外(至少2个)其他文件是从'@angular/Material'导入的,因此出现错误。

下部壳体'@angular/Material'删除了该警告。

希望这会有所帮助。

答案 3 :(得分:0)

我在使用asp.net core 2.0和web pack实现angular 4 App时遇到了这个问题。

如果您使用两个不同的" ./"导入服务或类,则会发生此问题;或" ../"相对路径表示法。

导航NavMenuComponent中的代码。

import { SampleService } from '../../services/sample.service';  

使用以下代码更改错误已解决

import { SampleService } from './../../services/sample.service';    

Learn more about GitHub discussion

答案 4 :(得分:0)

检查是否已导入两次。

答案 5 :(得分:0)

这也可能是由于您的webpack配置中的条目引起的:

const path = require('path');
const webpack = require('webpack');

module.exports = {
  mode: 'development'
  , entry: {
    crm: './Scripts/app/crm/crm.router.js'
    , labels: './Scripts/app/labels/labels.router.js'
    , admin: './scripts/app/crm/admin/admin.router.js'
  }
  , output: {
    filename: '[name]Bundle.js'
    , path: path.resolve(__dirname, 'dist')
  }
///...
};

在输入部分注意脚本脚本的区分。

答案 6 :(得分:0)

在将文件重命名为大写之后,我收到了该警告。

将特定文件移动到另一个文件夹并返回到原始文件夹后,警告消失了。

(我使用带有一些角度扩展名的VSC来移动文件时更新导入)

答案 7 :(得分:0)

我遇到了这样的问题,解决方案是创建一个子文件夹,在其中放置问题组件。

所以代替:

import {EventsComponent} from './Shared/Components/events/events.component';

执行以下操作:

import {EventsComponent} from './Shared/Components/About Event/events/events.component';

答案 8 :(得分:0)

此问题的一个令人讨厌的可能原因:组件路径中的大小写混合-使其相同。例如,

import {EventsComponent} from './events/events.component';
import {OtherComponent} from './Events/other.component';