Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to solve module.id should be a string error using webpack2

So I'm using webpack2 on a Angular2 project that has several external dependecies. Some of these dependencies are using commonjs and are declaring components like below:

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

This causes the error below:

Error: moduleId should be a string in "MyComponent"

After some research, I figure out this is due to Webpack expecting components to have id as a number while Angular declares it as string. I cannot change the dependency code. What can I do to live with this kind of dependency?

Thanks!

like image 685
Juliano Avatar asked Jan 15 '17 05:01

Juliano


Video Answer


1 Answers

So here's what I came up to live with that dependency for now. Use string replace loader to remove that line for me:

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

Hope this helps somebody with the same issue.

like image 80
Juliano Avatar answered Sep 25 '22 11:09

Juliano