Так что я использую webpack2 в проекте Angular2, который имеет несколько внешних зависимостей. Некоторые из этих зависимостей с помощью CommonJS и объявляют компоненты, как показано ниже:Как решить module.id должна быть строковая ошибка, используя webpack2
@Component({
moduleId: module.id,
templateUrl: 'mycomponent.html'
...
})
Это вызывает ошибку ниже:
Error: moduleId should be a string in "MyComponent"
После некоторых исследований, я выясняю, это связанно с Webpack ожидая компоненты, чтобы иметь id как число, в то время как Angular объявляет его как строку. Я не могу изменить код зависимостей. Что я могу сделать, чтобы жить с такой зависимостью?
Спасибо!
Сделать веб-пакет [решить относительные пути] (http://stackoverflow.com/questions/37178192/angular2-what-is-the-meanings-of-module-id-in-component) без идентификатора модуля? – Pavel
Как я уже сказал, я не могу просто удалить все ссылки module.id из всех сторонних библиотек. Они тянутся через npm каждый раз. Каждый человек, который должен работать над проектом, должен будет это сделать. @pavel, да Webpack не нуждается в разрешении относительных путей. – Juliano
Должен быть лучший способ решить эту проблему. Я попытался добавить правило, чтобы заменить все объявления module.id с помощью string-replace-loader. Тем не менее, он все еще не работает, поскольку шаблоны не ссылаются на каталог типа «./mytemplate.html», а просто объявляют «mytemplate.htnl». Последний не работает с Webpack – Juliano