如何解决module.id应该是使用webpack2的字符串错误

时间:2017-01-15 05:59:47

标签: angular webpack-2

所以我在一个Angular2项目上使用webpack2,该项目有几个外部依赖项。其中一些依赖项使用commonjs并声明如下组件:

@Component({
    moduleId: module.id,
    templateUrl: 'mycomponent.html'
    ...
})

这会导致以下错误:

Error: moduleId should be a string in "MyComponent"

经过一番研究,我发现这是因为Webpack期望组件将id作为数字,而Angular将其声明为字符串。我无法更改依赖关系代码。我能做些什么才能忍受这种依赖?

谢谢!

2 个答案:

答案 0 :(得分:3)

所以,我现在想要接受这种依赖。使用字符串替换加载程序为我删除该行:

{
    test: /.*node_modules\/my-dependency-folder\/.*\.js/,
    loader: 'string-replace-loader',
    query: {
        search: 'moduleId: module.id,',
        replace: ''
    }
}

希望这可以帮助有同样问题的人。

答案 1 :(得分:0)

删除行

moduleId: module.id,

有效。