ERROR in必须有一个要重构的源文件

时间:2018-03-30 14:18:43

标签: angular webpack ngtools

webpack编译出现奇怪错误:

  

ERROR in必须有一个要重构的源文件。

查看源代码,我在./node_modules/@ngtools/refactor.js中找到了此消息:

...   
if (!sourceFile) {
  throw new Error('Must have a source file to refactor.');
}

@ngtools webpack插件的配置非常简单:

  {
    test: /\.ts$/,
    use: '@ngtools/webpack',
  } 

3 个答案:

答案 0 :(得分:2)

不要忘记在AngularCompilerPlugin中添加mainPath配置正确的webpack.config.js。至少那是为我解决的问题。

plugins: [
  /**
   * Angular's webpack plugin to compile typescript and AOT for templates
   **/
  new ngTools.AngularCompilerPlugin({
    tsConfigPath: path.join(CONTEXT_DIR, "tsconfig.json"),
    mainPath: path.join(CONTEXT_DIR, "src/main.ts")
  }),
...
]

答案 1 :(得分:2)

对于任何痛苦的人,试图找到解决方案;只需更改:

new AngularCompilerPlugin({
      mainPath: 'src/main.ts',<----
      tsConfigPath: 'src/tsconfig.app.json',
      skipCodeGeneration: true
    }),

..对此:

new AngularCompilerPlugin({
      mainPath: 'main.ts',<----
      tsConfigPath: 'src/tsconfig.app.json',
      skipCodeGeneration: true
    }),

答案 2 :(得分:0)

我在角度库上运行“ ng build --aot = true”时收到此错误。原因是在angular.json文件的构建配置中缺少文件。该项目是作为一个有角度的应用程序而不是一个库生成的。 angular.json中的build部分指向src / main.ts和src / style.css,但项目中没有此类文件。我添加了丢失的文件来解决此问题。另外,可以将配置更改为库项目。

"build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
    "outputPath": "dist/ui-common",
    "index": "src/index.html",
    "main": "src/main.ts", //missing file