angular-cli: Migration angular 11 -> 12 causing Unknown error from PostCSS plugin
I have migrated from Angular 11 to Angular 12. I use Angular Material.
After the migration a ‘ng serve’ generates many errors:
Generating browser application bundles (phase: building)...Unknown error from PostCSS plugin. Your current PostCSS version is 8.3.0, but postcss-preset-env uses 7.0.35. Perhaps this is the source of the error below.
Unknown error from PostCSS plugin. Your current PostCSS version is 8.3.0, but postcss-preset-env uses 7.0.35. Perhaps this is the source of the error below.
Unknown error from PostCSS plugin. Your current PostCSS version is 8.3.0, but postcss-preset-env uses 7.0.35. Perhaps this is the source of the error below.
Unknown error from PostCSS plugin. Your current PostCSS version is 8.3.0, but postcss-preset-env uses 7.0.35. Perhaps this is the source of the error below.
etc......
Secondly additional errors are reported:
./src/app/<dir>/<component>.scss - Error: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
BrowserslistError: Unknown version 81 of android
at Function.select (C:\tfs\platform-ui\client\node_modules\browserslist\index.js:1132:17)
at C:\tfs\platform-ui\client\node_modules\browserslist\index.js:336:33
at Array.reduce (<anonymous>)
I see in yarn.lock that “@angular-devkit/build-angular@12.0.2”: has dependencies: postcss “8.3.0” postcss-import “14.0.1” postcss-loader “5.2.0” postcss-preset-env “6.7.0”
I have installed the latest node: v14.17.0 (mentioned in https://github.com/angular/angular-cli/issues/20903) I have deleted the node_modules and downloaded all package.
I have no clue what is wrong. Anyone any idea?
Angular.json: { “$schema”: “./node_modules/@angular/cli/lib/config/schema.json”, “version”: 1, “newProjectRoot”: “projects”, “projects”: { “platform-ui”: { “projectType”: “application”, “schematics”: { “@schematics/angular:component”: { “style”: “scss” }, “@schematics/angular:application”: { “strict”: true } }, “root”: “”, “sourceRoot”: “src”, “prefix”: “app”, “architect”: { “build”: { “builder”: “@angular-devkit/build-angular:browser”, “options”: { “outputPath”: “dist”, “index”: “src/index.html”, “main”: “src/main.ts”, “polyfills”: “src/polyfills.ts”, “tsConfig”: “src/tsconfig.app.json”, “stylePreprocessorOptions”: { “includePaths”: [ “src/assets/style” ] }, “assets”: [ “src/assets”, “src/favicon.ico” ], “styles”: [ “src/styles.scss”, “node_modules/@fortawesome/fontawesome-free/css/all.css”, “node_modules/ngx-toastr/toastr.css” ], “scripts”: [], “vendorChunk”: true, “extractLicenses”: false, “buildOptimizer”: false, “sourceMap”: true, “optimization”: false, “namedChunks”: true }, “configurations”: { “production”: { “budgets”: [ { “type”: “anyComponentStyle”, “maximumWarning”: “6kb” } ], “optimization”: true, “outputHashing”: “all”, “sourceMap”: false, “namedChunks”: false, “extractLicenses”: true, “vendorChunk”: false, “buildOptimizer”: true, “fileReplacements”: [ { “replace”: “src/environments/environment.ts”, “with”: “src/environments/environment.prod.ts” } ] } } }, “serve”: { “builder”: “@angular-devkit/build-angular:dev-server”, “options”: { “browserTarget”: “platform-ui:build” }, “configurations”: { “production”: { “browserTarget”: “platform-ui:build:production” } } }, “extract-i18n”: { “builder”: “@angular-devkit/build-angular:extract-i18n”, “options”: { “browserTarget”: “platform-ui:build” } }, “test”: { “builder”: “@angular-devkit/build-angular:karma”, “options”: { “main”: “src/test.ts”, “karmaConfig”: “./karma.conf.js”, “polyfills”: “src/polyfills.ts”, “tsConfig”: “src/tsconfig.spec.json”, “scripts”: [], “styles”: [ “src/styles.scss” ], “stylePreprocessorOptions”: { “includePaths”: [ “src/styles”, “src/assets/style”, “src/assets/style/font”, “src/assets/style/overrides”, “src/assets/style/mixins”, “src/assets/style/variables” ] }, “assets”: [ “src/assets”, “src/favicon.ico” ] } }, “lint”: { “builder”: “@angular-devkit/build-angular:tslint”, “options”: { “tsConfig”: [ “src/tsconfig.app.json”, “src/tsconfig.spec.json” ], “exclude”: [] } } } }, “platform-ui-e2e”: { “root”: “e2e”, “sourceRoot”: “e2e”, “projectType”: “application”, “architect”: { “e2e”: { “builder”: “@angular-devkit/build-angular:protractor”, “options”: { “protractorConfig”: “./protractor.conf.js”, “devServerTarget”: “platform-ui:serve” } }, “lint”: { “builder”: “@angular-devkit/build-angular:tslint”, “options”: { “tsConfig”: [ “e2e/tsconfig.e2e.json” ], “exclude”: [] } } } } }, “defaultProject”: “platform-ui”, “schematics”: { “@schematics/angular:component”: { “prefix”: “app”, “style”: “scss”, “styleext”: “scss” }, “@schematics/angular:directive”: { “prefix”: “app” } }, “cli”: { “analytics”: “e7857621-5b3e-4805-8f2d-f407b5402ed0” } }
package.json: { “name”: “ui-client”, “version”: “1.0.0”, “scripts”: { “ng”: “ng”, “start”: “ng serve”, “build”: “node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build”, “test”: “node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng test”, “lint”: “ng lint”, “e2e”: “ng e2e”, “bundle-report”: “webpack-bundle-analyzer dist/stats.json” }, “private”: true, “dependencies”: { “@angular/animations”: “12.0.2”, “@angular/cdk”: “12.0.2”, “@angular/common”: “12.0.2”, “@angular/compiler”: “12.0.2”, “@angular/core”: “12.0.2”, “@angular/forms”: “12.0.2”, “@angular/material”: “12.0.2”, “@angular/platform-browser”: “12.0.2”, “@angular/platform-browser-dynamic”: “12.0.2”, “@angular/platform-server”: “12.0.2”, “@angular/router”: “12.0.2”, “@fortawesome/fontawesome-free”: “5.15.3”, “@turf/turf”: “5.1.6”, “ag-grid-angular”: “25.2.0”, “ag-grid-community”: “25.2.1”, “angular-pipes”: “10.0.0”, “aws-sdk”: “2.907.0”, “classlist.js”: “^1.1.20150312”, “js-yaml”: “3.14.1”, “jsts”: “2.0.8”, “lodash-es”: “4.17.21”, “moment”: “2.29.1”, “ngx-clipboard”: “14.0.1”, “ngx-toastr”: “13.2.1”, “normalize-scss”: “^7.0.0”, “rxjs”: “6.6.7”, “tslib”: “^2.0.0”, “vkbeautify”: “^0.99.3”, “web-animations-js”: “^2.3.2”, “zone.js”: “~0.11.4” }, “devDependencies”: { “@angular-devkit/build-angular”: “12.0.2”, “@angular/cli”: “12.0.2”, “@angular/compiler-cli”: “12.0.2”, “@angular/language-service”: “12.0.2”, “@types/core-js”: “2.5.4”, “@types/jasmine”: “3.7.4”, “@types/js-yaml”: “3.12.1”, “@types/lodash”: “4.14.169”, “@types/node”: “15.3.0”, “@types/vkbeautify”: “0.99.2”, “codelyzer”: “6.0.2”, “jasmine-core”: “3.7.1”, “jasmine-spec-reporter”: “7.0.0”, “karma”: “6.3.2”, “karma-chrome-launcher”: “~3.1.0”, “karma-coverage-istanbul-reporter”: “~3.0.2”, “karma-htmlfile-reporter”: “0.3.8”, “karma-jasmine”: “~4.0.0”, “karma-jasmine-html-reporter”: “1.6.0”, “karma-parallel-2”: “0.3.2”, “license-checker”: “25.0.1”, “protractor”: “~7.0.0”, “ts-node”: “^8.10.2”, “tslint”: “6.1.3”, “typescript”: “4.2.4”, “webpack-bundle-analyzer”: “4.4.2” } }
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 9
- Comments: 30 (1 by maintainers)
The issue seems to be related to the file .browserslistrc, renamed from browserlist during the upgrade migration. I resolved this issue by creating a new angular app, but only for the purposes of creating the default .browserslistrc file, and then copied that file to my upgraded app. For some more info on .browserlistrc, see https://github.com/browserslist/browserslist#queries
Look like you might need to delete the lock file.
We’re getting this as well. I’ve tried deleting node_models and package.lock to no avail.
It’s also only failing for one of our apps in a multi app build. the
style.scss
file in the failing app is identical to those in other apps.I can’t find any dependencies out side of angular.
The start of the build shows this:
And then later fails with this.
This worked for me. I had a similiar erorr where I’d get an error due to Kendo themes crashing the build with syntax error. Using ng new and ripping that browserlistrc file completely worked instantly.
This is what helped me:
1st repo - deleted
yarn.lock
andnode_modules
,yarn install
and it was good to go2nd repo - as above, + had to point
angular.json
to a sass file instead of css (for angular-notifier lib). Weird as hell but it worked.Worked for me also.
This is the default
.browserlistrc
for v12 just FYIUpdating the
.browserslistrc
file content to the new format worked for me also, as long as I excludeIE 11
. Opting in to IE 11 support causes the PostCSS issue to return during the build. I only haveautoprefixer
installed as a dependency of the@angular-devkit
Same issue for me. Tried deleting package-lock.json and node_modules, also tried forcibly installing
postcss
,postcss-cli
,postcss-preset-env
andautoprefixer
as dependencies at earlier versions, nothing seems to help. No choice but to revert to Angular 11 for now.Hi, how did you manage to resolve this? I tried everything. Deleted yarn.lack and node_modules. Nothing works. I even made a dependency on postcss@7 but, guess what - same error!!! Please, help.
I completely rebuild package.json and yarn.lock from scratch. The problem is resolved. Thanks for the support.