У меня есть приложение Angular, которое я регулярно обновляю и собираю с помощью новейшего пакета Webpack. В некоторые дни go я обновил проект до Angular 9 и столкнулся с некоторыми проблемами, которые не смог решить.
- npm Запустить сборку: prod ошибка TS2307: не удается найти модуль './app/app.module.ngfactory'. Я думаю, что это вызвано этой частью конфигурации webpack, потому что импорт модуля изменен в Angular 9. Однако я не совсем уверен в этом.
plugins: [
new ngw.AngularCompilerPlugin({
tsConfigPath: path.resolve(rootPath, 'tsconfig.aot.json'),
entryModule: path.resolve(rootPath, 'src', 'app', 'app.module#AppModule')
})
]
npm запустить тест Файл не найден. Эта ошибка немного загадочна для меня. Я читал некоторые посты о подобных проблемах, но эти советы не работали. Ниже вы можете найти мои файлы конфигурации, но весь проект доступен на GitHub: https://github.com/aszidien/angular-webpack-build пакет. json ...
"scripts": {
"build:dev": "cross-env NODE_ENV=development webpack --mode development",
"build:prod": "cross-env NODE_ENV=production webpack --mode production",
"test": "jest"
}
...
tsconfig.aot. json {
"compilerOptions": {
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"skipMetadataEmit": true
}
}
webpack.config.common . js const webpackMerge = require('webpack-merge');
const commonConfig = require('./webpack.config.common');
module.exports = webpackMerge(commonConfig, {
devtool: 'cheap-module-eval-source-map',
output: {
publicPath: '/',
filename: 'bundle.js',
chunkFilename: '[id].chunk.js'
},
module: {
rules: [
{
test: /\.ts$/,
use: [
{
loader: 'awesome-typescript-loader', options: {
transpileOnly: true
}
},
{ loader: 'angular2-template-loader' },
{ loader: 'angular-router-loader' }
]
}
]
},
devServer: {
historyApiFallback: true,
stats: 'minimal'
}
});
webpack.config.prod. js const webpackMerge = require('webpack-merge');
const commonConfig = require('./webpack.config.common');
module.exports = webpackMerge(commonConfig, {
devtool: 'cheap-module-eval-source-map',
output: {
publicPath: '/',
filename: 'bundle.js',
chunkFilename: '[id].chunk.js'
},
module: {
rules: [
{
test: /\.ts$/,
use: [
{
loader: 'awesome-typescript-loader', options: {
transpileOnly: true
}
},
{ loader: 'angular2-template-loader' },
{ loader: 'angular-router-loader' }
]
}
]
},
devServer: {
historyApiFallback: true,
stats: 'minimal'
}
});