我正试图将Angular从12升级到13,在执行npx @angular/cli@13 update @angular/core@13 @angular/cli@13
并启动我的应用程序后,我收到以下错误:
[error] TypeError: Cannot read properties of undefined (reading 'styles')
at getStylesConfig (/User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/webpack/configs/styles.js:79:49)
at /User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/builders/dev-server/index.js:130:43
at /User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:72:16
at generateWebpackConfig (/User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:61:40)
at async generateBrowserWebpackConfigFromContext (/User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:123:20)
at async generateI18nBrowserWebpackConfigFromContext (/User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:70:20)
at async setup (/User/my-user/my-app/node_modules/@angular-devkit/build-angular/src/builders/dev-server/index.js:127:47)
这看起来像罪魁祸首:
function getStylesConfig(wco) {
var _a, _b, _c;
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const postcssImports = require('postcss-import');
const postcssPresetEnv = require('postcss-preset-env');
const { root, buildOptions } = wco;
const extraPlugins = [];
extraPlugins.push(new plugins_1.AnyComponentStyleBudgetChecker(buildOptions.budgets));
const cssSourceMap = buildOptions.sourceMap.styles;
这是我的angular.json
:的相关部分
{
"options": {
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
{
"input": "src/default-theme.scss",
"inject": false,
"bundleName": "assets/themes/default"
},
{
"input": "src/high-contrast-theme.scss",
"inject": false,
"bundleName": "assets/themes/high-contrast"
}
],
"sourceMap": {
"styles": false,
"scripts": false
}
}
}
我试图在@angular-devkit/build-angular/src/webpack/configs/styles.js
中的以下行放置断点:
const cssSourceMap = buildOptions.sourceMap.styles;`
显然sourceMap
是未定义的,即使它在我的options
中。我试图将option
中的outputPath
更改为test123
,以确保这是正在读取的部分,并且我可以确认它是。
然而,sourceMap
是未定义的。
有人知道我可能遗漏了什么吗?
谢谢!
ngx-build-plus
也需要升级到匹配的Angular版本(即13(。
对于Angular 13,将其升级为13
ng update ngx-build-plus@13 --force
运行以下程序后,它可以完美工作:
ng update ngx-build-plus --force
有时,我们可能会有旧版本的库和包,这些库和包在package-lock.json
中没有更新到所需的最新版本
- 删除
node_modules
和package-lock.json
- 运行
npm i
ng update ngx-build-plus@13 --force
(用于Angular12至Angular13(