如何解决 Webpack/Angular moduleId 错误?



我构建了一个应用程序,它大量借鉴了Dan Wahlin的Angular-Jumpstart应用程序,当我使用他的"npm start"运行它时,它可以工作,看起来像这样:

"start": "tsc && concurrently "tsc -w" "node server.js"

然后,我使用Visaul Studio 2017构建了Scott Sanderson在其同名博客文章中引用的">ASP.NET Core + Angular 2模板用于Visual Studio"应用程序。他的这个 ASP.NET Core/Angular 2 示例应用程序使用 Webpack、服务器端渲染和 HMR。它也可以正常工作。

但是,我想将我为 Dan Wahlin 应用程序创建的一些代码添加到 Scott Sanderson 应用程序中,并且遇到了与moduleId相关的错误。以下是我收到的错误消息的示例:

处理

请求时发生未处理的异常。 异常:对节点模块的调用失败,错误:错误:模块 ID 应该是"FilterTextboxComponent"中的字符串。...如果您使用的是 Webpack 您应该内联模板和样式...

为了解决这个问题,我尝试了:

  • 从有问题的组件中删除模块 Id 变量
  • 以这种方式设置 moduleId varaible:

    moduleId: module.id + ''
    

我在这里和其他地方看过,但无法确定我需要做些什么来解决这个问题。这是一个 Webpack 错误吗?我是否忽略了我需要做的事情?

如果您认为可以帮助您帮助我,我很乐意提供更多信息!

我想出了发生了什么...

我会通过删除我的 .ts 文件中对 moduleId 的引用来编辑@Component元数据并保存它,但由于某种原因,Webpack 没有将 .ts 文件转译为新的.js文件。它只是捆绑和服务旧的.js文件。

至于为什么?我认为 Webpack 在存在.js文件时使用它们,但在它们不存在时会生成自己的文件。

最新更新