我正在尝试在我的 angular/webpack 应用程序上实现 ngc 编译配置。我的根文件夹中有一个 tsConfig-aot.json,如下所示。
{
....
"files": [
"src/app/app.module.ts",
"src/app/lazy/about/about.module.ts",
"src/app/lazy/employees/employees.module.ts",
"src/app/lazy/login/login.module.ts",
"src/app/lazy/employee-details/employee-details.module.ts"
],
"include": [
"src/polyfills.ts",
"src/vendor.ts"
],
"exclude": [
"./node_modules",
"./**/*.e2e.ts",
"./**/*.spec.ts",
"./src/main-aot.ts"
],
"angularCompilerOptions": {
"genDir": "./aot",
"skipMetadataEmit": true
}
}
我的 webpack 配置如下。
module.exports = {
entry: {
'polyfills': './src/polyfills.ts',
'vendor': './src/vendor.ts',
'app': './src/main-aot.ts'
},
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [
{
test: /\.ts$/,
loaders: [
{
loader: '@ngtools/webpack',
options: { configFileName: helpers.root('tsconfig-aot.json') }
}, 'angular-router-loader?aot=true&genDir=aot/', 'angular2-template-loader'
],
exclude: [/node_modules/, /\.(spec|e2e)\.ts$/]
},
]
},
plugins: [
new AngularCompilerPlugin({
tsConfigPath: 'tsconfig-aot.json',
sourceMap: true
}),
new webpack.optimize.CommonsChunkPlugin({
names: ['app', 'vendor', 'polyfills']
}),
...
]
};
我正在尝试为我的应用程序实现 aot 构建配置。但是,当我运行./node_modules/.bin/ngc -p ./tsconfig-aot.json
. 我的应用程序编译失败并显示错误消息
TypeScript 编译中缺少 src/main-aot
我的 main.aot 是这样写的
import { platformBrowser } from '@angular/platform-browser';
import { enableProdMode } from '@angular/core';
import { AppModuleNgFactory } from '../aot/src/app/app.module.ngfactory';
enableProdMode();
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
当我tsconfig-aot
通过在文件对象中添加 main-aot 来更新我的时,错误更改为"aot/src/app/app.module.ngfactory" has no exported member 'AppModuleNgFactory'
. 我推测后者是因为尚未生成 aot 文件夹。请问我该如何正确配置这个?任何帮助,将不胜感激。