首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角13升级,角-devkit问题:无法读取未定义的属性“样式”

角13升级,角-devkit问题:无法读取未定义的属性“样式”
EN

Stack Overflow用户
提问于 2021-12-11 15:22:23
回答 3查看 3K关注 0票数 5

我正在尝试从12升级到13,在执行npx @angular/cli@13 update @angular/core@13 @angular/cli@13并启动我的应用程序之后,我得到了以下错误:

代码语言:javascript
复制
[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)

这看起来像是罪魁祸首:

代码语言:javascript
复制
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的相关部分

代码语言:javascript
复制
{
  "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中的下一行放置一个断点

代码语言:javascript
复制
const cssSourceMap = buildOptions.sourceMap.styles;`

显然,sourceMap是未定义的,即使它在我的options中。我试图将我的option中的option更改为test123,以确保这是正在读取的部分,并且我可以确认它是读取的。

然而,sourceMap还没有定义。

有人知道我可能错过了什么吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-11 15:47:07

ngx-build-plus也需要升级到匹配的角度版本(即13)。

票数 20
EN

Stack Overflow用户

发布于 2022-06-05 13:53:09

在运行了以下程序之后,它完美地工作了:

代码语言:javascript
复制
ng update ngx-build-plus --force
票数 1
EN

Stack Overflow用户

发布于 2022-10-25 17:52:34

对于角13,升级到13。

代码语言:javascript
复制
ng update ngx-build-plus@13 --force
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70316417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档