J'ai lu la documentation , qui dit que si je veux utiliser, scss
je dois exécuter la commande suivante:
ng set defaults.styleExt scss
Mais lorsque je fais cela et que je crée ce fichier, je reçois toujours cette erreur dans ma console:
styles.bundle.js:33Uncaught Error: Module build failed: Error: ENOENT: no such file or directory, open '/Users/Egen/Code/angular/src/styles.css'(…)
git diff
voyez ce que cela a changé.ng new whatever --style=scss
comme indiqué dans la documentation . Ne suivez pas les instructions pour configurer un projet existant si ce n'est pas ce que vous faites!Réponses:
Pour Angular 6, consultez la documentation officielle
Remarque: pour les
@angular/cli
versions antérieures à l'6.0.0-beta.6
utilisationng set
à la place deng config
.Pour les projets existants
Dans un projet angular-cli existant qui a été configuré avec les
css
styles par défaut , vous devrez faire plusieurs choses:scss
si vous obtenez une erreur:
Value cannot be found.
utilisez la commande:(* source: options CLI SASS angulaires )
Renommez vos
.css
fichiers existants en.scss
(c'est- à -dire styles.css et app / app.component.css)Pointez la CLI pour trouver styles.scss
Pour les futurs projets
Comme @Serginho l'a mentionné, vous pouvez définir l'extension de style lors de l'exécution de la
ng new
commandeSi vous souhaitez définir la valeur par défaut pour tous les projets que vous créez à l'avenir, exécutez la commande suivante:
la source
css
àscss
in.angular-cli.json
créera automatiquement des fichiers scss pour chaque nouveau composant généré dans le futur.ng config schematics.@schematics/angular:component.styleext scss
comme indiqué par @ hamilton.limaÀ partir de ng6, cela peut être accompli avec le code suivant ajouté
angular.json
au niveau racine:Changer manuellement en
.angular.json
:la source
schematics
pas au niveau racine mais imbriqué dans mon projet dansangular.json
. Dois-je ignorer cela et ajouter ceci au niveau racine à la place?schematics
est maintenant également imbriqué.Ouvrez le fichier angular.json
1. changer de
"schematics": {}
à
"src/styles.css"
à
"src/styles.scss"
puis vérifiez et renommez tous les
.css
fichiers et mettez à jour les fichiers component.ts styleUrls de.css to .scss
la source
ng config schematics.@schematics/angular:component.styleext scss
comme spécifié dans la documentation officielle: github.com/angular/angular-cli/wiki/stories-css-preprocessorsPour Angular 6,
Remarque: @ schematics / angular est le schéma par défaut de la CLI angulaire
la source
Intégration du préprocesseur CSS pour Angular CLI: 6.0.3
Lors de la génération d'un nouveau projet, vous pouvez également définir l'extension souhaitée pour les fichiers de style:
Ou définissez le style par défaut sur un projet existant:
Documentation CLI angulaire pour tous les principaux préprocesseurs CSS
la source
Invalid JSON character: "s" at 0:0.
ng config
(comme ci - dessus) est la meilleure méthode , mais vous avez encore besoin de renommer les*.css
fichiers à*.scss
et remplacer les références dansangular.json
lastyle.css
avecstyle.scss
et mettre à jour toutes les références de fichiers composant dans lastyleUrls
propriété des nouveaux noms. ... alors ça marche très bien!Pour les projets existants :
Dans le
angular.json
dossierEn
build
partie et entest
partie, remplacez:"styles": ["src/styles.css"],
par"styles": ["src/styles.scss"],
Remplacer:
"schematics": {},
par"schematics": { "@schematics/angular:component": { "style": "scss" } },
Dans votre projet, renommez vos
.css
fichiers en.scss
Pour un nouveau projet , cette commande fait tout le travail:
Pour la configuration globale
Les nouvelles versions ne semblent pas avoir de commande globale
la source
Utilisez la commande:
la source
En NG6 vous devez utiliser cette commande, selon un même poste :
la source
Pour les utilisateurs du extensions Nrwl qui rencontrent ce fil: toutes les commandes sont interceptées par Nx (par exemple,
ng generate component myCompent
) puis transmises à AngularCLI.La commande pour faire fonctionner SCSS dans un espace de travail Nx:
ng config schematics.@nrwl/schematics:component.styleext scss
la source
Un changement de force brute peut être appliqué. Cela fonctionnera pour changer, mais c'est un processus plus long.
Accédez au dossier de l'application src / app
Ouvrez ce fichier: app.component.ts
Remplacez ce code
styleUrls: ['./app.component.css']
parstyleUrls: ['./app.component.scss']
Sauver et fermer.
Dans le même dossier src / app
Renommez l'extension du fichier app.component.css en (app.component.scss)
Suivez ce changement pour tous les autres composants. (ex. domicile, à propos, contact, etc ...)
Le fichier de configuration angular.json est le suivant. Il est situé à la racine du projet.
Recherchez et remplacez le css, changez-le en (scss) .
Sauver et fermer.
Enfin, redémarrez votre
ng serve -o
.Si le compilateur se plaint de vous, reprenez les étapes.
Assurez-vous de suivre attentivement les étapes dans app / src .
la source
Dans la dernière version d'Angular (v9), le code ci-dessous doit être ajouté
angular.json
Peut être ajouté à l'aide de la commande suivante:
la source