Je suis this pour ajouter des fichiers scss importables via stylePreprocessorOptions dans Angular 8 mais j'obtiens toujours l'erreur de ne pas être trouvé. Toute entrée est appréciée, c'est bien astuce est très utile!
ci-dessous est mon angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"thebearcottages-app": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:module": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/thebearcottages-app",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss",
],
"stylePreprocessorOptions": {
"includePaths": [
"src/styling/"
]
},
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "thebearcottages-app:build"
},
"configurations": {
"production": {
"browserTarget": "thebearcottages-app:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "thebearcottages-app:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js"
]
}
},
"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": "thebearcottages-app:serve"
},
"configurations": {
"production": {
"devServerTarget": "thebearcottages-app:serve:production"
}
}
}
}
}},
"defaultProject": "thebearcottages-app"
}
Voici l'erreur que j'obtiens:
ERREUR dans ./src/app/content-component/gallery/gallery.component.scss La construction du module a échoué (à partir de ./node_modules/sass-loader/lib/loader.js):
@import "grid"; ^ Impossible de trouver la feuille de style à importer. ╷ 1 │ @import "grille"; │ ^^^^^^ ╵ stdin Feuille de style racine 1: 9 dans /Users/konstantinurban/Desktop/thebearcottages/src/app/content-component/gallery/gallery.component.scss (ligne 1, colonne 9)
J'ai trouvé le même bogue lors du démarrage d'une nouvelle application avec Angular 8. Il dit "Impossible de trouver la feuille de style à importer." Même pour les importations correctement déclarées. Après une petite enquête, j'ai trouvé qu'il était lié à sass -loader --- https://github.com/webpack-contrib/sass-loader/issues/704 J'espère que ce sera corrigé bientôt, mais en attendant il y a une solution:
Pour les _mixins.scss
dans votre stylePreprocessorOptions/includePaths, utilisez le nom de fichier, y compris le premier trait de soulignement
@import '_mixins';
au lieu de plus jolie, mais actuellement buggy
@import 'mixins';
Trop de gens ont ce problème.
Semble que nous devons ajouter:
"stylePreprocessorOptions": {
"includePaths": [
"// here paths to include"
"assets/styles",
]
Il semble résoudre certains problèmes, mais ne résout toujours pas les importations de boussole.
Sachez que si vous utilisez scss lorsque vous importez en tant que préfixe, vous devez spécifier le type. @import "colours.scss";