x
) cualquier versión anterior a angular cli 11 funciona.
Tengo algunos sitios que usan angular, antes de angular 11, estos sitios son sitios complejos con backends. Entonces uso ng build --watch --source-map --named-chunks
para desarrollar los sitios, todo funciona muy bien, pero después de actualizar a angular 11, todos mis mapas de origen de scss son incorrectos, mis sitios usan scss de bootstrap, antes de la actualización, cada proyecto puede mostrar la exacta fuente de cualquier regla CSS. pero después de la actualización, todas las reglas provienen del mismo archivo scss que aparece en angular.json.
He buscado los problemas, ¿parece que nadie tiene mi problema?
aquí está mi angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"cbp": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
},
"@schematics/angular:application": {
"strict": true
}
},
"root": "",
"sourceRoot": "resources/src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "public/bundles",
"deployUrl": "bundles/",
"index": "resources/src/index.html",
"main": "resources/src/main.ts",
"polyfills": "resources/src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"sourceMap": true,
"assets": [
"resources/src/favicon.ico",
"resources/src/assets"
],
"styles": [
"resources/sass/style.scss",
"resources/src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "resources/src/environments/environment.ts",
"with": "resources/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "500kb",
"maximumError": "1mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kb",
"maximumError": "4kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "cbp:build"
},
"configurations": {
"production": {
"browserTarget": "cbp:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "cbp:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "resources/src/test.ts",
"polyfills": "resources/src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"resources/src/favicon.ico",
"resources/src/assets"
],
"styles": [
"resources/src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "cbp:serve"
},
"configurations": {
"production": {
"devServerTarget": "cbp:serve:production"
}
}
}
}
}
},
"defaultProject": "cbp"
}
y aquí está mi problema, todas las reglas css son de styles.scss
, este es el scss de mis plantillas, no el style.scss
de angular.
ng new test-app
cd test-app
npm i -D bootstrap
// now add "node_modules/bootstrap/scss/bootstrap.scss", to styles of angular.json
ng serve
// open localhost:4200, and check, every rule related to bootstrap are all come from bootstrap.scss file
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 11.0.2
Node: 14.15.1
OS: darwin x64
Angular: undefined
...
Ivy Workspace: <error i="14">
Package Version
------------------------------------------------------
@angular-devkit/architect 0.1100.2 (cli-only)
@angular-devkit/core 11.0.2 (cli-only)
@angular-devkit/schematics 11.0.2 (cli-only)
@schematics/angular 11.0.2 (cli-only)
@schematics/update 0.1100.2 (cli-only)
webpack 5.9.0
</error>
resultado mínimo de caso de prueba
no hay diferencia cuando se usa --sourceMap
--source-map
o se establece sourceMap: true
en angular.json, los tres métodos conducen a exactamente el mismo resultado que se muestra arriba.
Comentario más útil
resultado mínimo de caso de prueba
no hay diferencia cuando se usa
--sourceMap
--source-map
o se establecesourceMap: true
en angular.json, los tres métodos conducen a exactamente el mismo resultado que se muestra arriba.