J'essaie d'installer Sass
dans mon Angular 2
projet. Si je comprends bien, il existe essentiellement deux façons de créer un projet angular 2
1) Utiliser angular-cli
_ ( https://github.com/angular/angular-cli )
J'ai fait référence à la réponse mentionnée dans https://stackoverflow.com/a/41541042/2868352 & J'ai pu utiliser avec succès les fichiers scss
dans angular 2 project , tout a bien fonctionné, mais je n’ai pas pu localiser le fichier css
généré à partir du fichier scss
dans le dossier du projet. Quelqu'un pourrait-il expliquer pourquoi aucun fichier css
n’a été généré, mais toujours travaillé?
2) Utilisation de quickstart seed
_ ( https://angular.io/guide/quickstart )
Je ne pouvais obtenir aucune information sur la manière de configurer sass
dans un projet quickstart. Est-ce que quelqu'un a une idée sur l'utilisation de sass
dans le projet de démarrage rapide fourni par angular?
Merci d'avance!
[Vérifier la partie modifiée à la fin de cette réponse au cas où vous utiliseriez angular cli]
Expliquant comment utiliser sass dans la 'graine de démarrage rapide' ( https://angular.io/guide/quickstart ) (- https://angular.io/guide/setup#download )
Veuillez suivre ces étapes simples:
Étape 1: Configurez la graine de démarrage rapide
Utilisez les commandes ci-dessous pour configurer
npm install
npm start
vous verrez 'Hello Angular' sur le navigateur.
Étape 2: Installez node-sass et sass-loader
Utilisez les commandes mentionnées ci-dessous pour installer
npm i node-sass -S
npm i sass-loader -S
Vous pouvez maintenant voir ces deux éléments ajoutés dans votre "dépendance" à l'intérieur du fichier "package.json".
Étape 3: Créez 2 dossiers pour le code Sass et le code Css
Créez deux dossiers avec un nom quelconque dans le dossier "quickstart-master". Dans ce cas, par exemple: "sass_folder" et "css_folder". Créez maintenant un fichier de démonstration 'demo.sass' et placez-le dans 'sass_folder'. Vous pouvez mettre un simple code sass dans ce fichier .sass. Il ressemblera à ceci:
$font-stack: Helvetica, sans-serif
$primary-color: #000
body
font: 100% $font-stack
color: $primary-color
Étape 4: Modifiez le fichier 'package.json'
Ajoutez des scripts pour générer et observer le code Sass présent dans "sass_folder". Après la compilation, le code CSS résultant doit être stocké dans "css_folder". Une fois les modifications apportées, le fichier "Scripts" du fichier 'package.json' devrait ressembler à ceci:
"scripts": {
"build": "tsc -p src/",
"build:watch": "tsc -p src/ -w",
"build:e2e": "tsc -p e2e/",
"serve": "lite-server -c=bs-config.json",
"serve:e2e": "lite-server -c=bs-config.e2e.json",
"prestart": "npm run build",
"start": "concurrently \"npm run build:watch\" \"npm run serve\" \"npm run watch:sass\"",
"pree2e": "npm run build:e2e",
"e2e": "concurrently \"npm run serve:e2e\" \"npm run protractor\" --kill-others --success first",
"preprotractor": "webdriver-manager update",
"protractor": "protractor protractor.config.js",
"pretest": "npm run build",
"test": "concurrently \"npm run build:watch\" \"karma start karma.conf.js\"",
"pretest:once": "npm run build",
"test:once": "karma start karma.conf.js --single-run",
"lint": "tslint ./src/**/*.ts -t verbose",
"build:sass": "node-sass sass_folder/ -o css_folder",
"watch:sass": "npm run build:sass && node-sass sass_folder/ -wo css_folder/"
}
Jetez un coup d'œil à 'start', 'build: sass' et à 'watch: sass' uniquement.
Étape 5: Exécuter l'application
Maintenant, vous pouvez exécuter l'application en utilisant la commande ci-dessous:
npm start
Vous verrez le code CSS compilé dans "css_folder" avec le même nom de fichier 'demo.css'. Cela ressemblera à ceci (dans ce cas):
body {
font: 100% Helvetica, sans-serif;
color: #000; }
Maintenant, si vous apportez des modifications au fichier .sass, celles-ci seront reflétées de manière dynamique dans le fichier .css pendant que le script surveille le code.
Si cela indique une erreur, fermez le fichier .css lorsque vous apportez des modifications au fichier .sass.
Remarque: pour le code scss, vous pouvez suivre les mêmes étapes. Vous devez simplement mettre le fichier .scss dans "sass_folder" dans ce cas.
[édité] Si vous voulez utiliser Angular CLI:
Au moment de la création du nouveau Angular utilisation du projet sous les cmnds mentionnés:
Pour sass:
ng new Demo_Project --style=sass
Pour scss:
ng new Demo_Project --style=scss
Pour changer le style existant:
ng set defaults.styleExt scss
Après cela, vous pouvez utiliser Cli normalement.
Je peux t'expliquer le premier.
Si vous utilisez ng server
les fichiers compilés sont enregistrés dans un dossier caché de votre projet.
Si vous utilisez ng build
, vous pouvez voir vos fichiers compilés dans le dossier/dist. Dans ce dossier, vous pouvez trouver vos styles généraux dans les styles de fichier. [Hashversion] .css, mais les styles de composants locaux sont inclus dans main. [Hashversion] .js de Webpack.
Angular-cli utilise webpack, et si vous voulez en savoir plus sur, voir Webpack Docs
[~ # ~] met à jour [~ # ~]
Dans le second cas, vous devez compiler manuellement sass. Dans le dossier de l'application, ne possédez pas app.component.ts qui sera compilé dans le même dossier que app.component.js par TypeScript Compiler. Donc, vous devez faire la même chose avec sass. Importez le fichier CSS dans le composant.
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`,
stylesUrl: ['app/app.component.css']
})
export class AppComponent { name = 'Angular'; }
Vous remarquerez que vous ne pouvez pas utiliser de chemin relatif car tout sera demandé à partir du répertoire racine.
Créé un app.component.sass
et mettez vos styles à l'intérieur.
Puis exécutez le compilateur sass qui compile le app.component.sass
à app.component.css
Exécutez le serveur et cela fonctionnera.
Il y a deux scénarios principaux ici.
Lors de la création d’un nouveau Angular CLI, utilisez la commande CLI
ng new my-angular-app --style=scss
Quand un projet CLI Angular a déjà été configuré, utilisez la commande CLI
ng set default.styleExt scss
Dans le cas 2, vous devez convertir manuellement les fichiers existants .css
. Vous pouvez aussi utiliser sass
ou less
au lieu de scss
Voyez l'article complet ici.