Uso de Sass en angular 2
Estoy intentando configurar Sass
en mi proyecto Angular 2
. Básicamente, según entiendo, hay dos formas de crear un proyecto angular 2
1) Usando angular-cli
(https://github.com/angular/angular-cli)
Me referí a la respuesta mencionada en https://stackoverflow.com/a/41541042/2868352 & Pude usar correctamente los archivos scss
en el proyecto angular 2, todo funcionó muy bien, pero no pude localizar el archivo css
generado desde el archivo scss
en la carpeta del proyecto. ¿Podría alguien explicar la razón por la que no se generó ningún archivo css
pero aún así funcionó?
2) Usando quickstart seed
(https://angular.io/guide/quickstart)
No pude obtener ninguna información sobre cómo configurar sass
en el proyecto quickstart. ¿Alguien tiene alguna idea sobre el uso de sass
en el proyecto de inicio rápido proporcionado por angular?
Gracias de antemano!
3 answers
[Compruebe la parte editada al final de esta respuesta en caso de que esté utilizando angular cli]
Explicando cómo usar sass en 'quickstart seed'(https://angular.io/guide/quickstart ) ( https://angular.io/guide/setup#download )
Por favor, siga estos sencillos pasos:
Paso 1: Configurar la semilla de inicio rápido
Utilice los siguientes comandos para configurar
npm install
npm start
Verás 'Hola Angular' en navegador.
Paso 2: Instale node-sass y sass-loader
Utilice los comandos mencionados a continuación para instalar
npm i node-sass -S
npm i sass-loader -S
Ahora puedes ver ambos añadidos en tu paquete 'dependencies' dentro de'.archivo de Json.
Paso 3: Crea 2 carpetas para el código Sass y el código Css
Cree dos carpetas con cualquier nombre en la carpeta "quickstart-master". En este caso, por ejemplo: "sass_folder" y "css_folder". Ahora crear un archivo de demostración 'demo.sass ' and put it dentro de 'sass_folder'. Puedes poner un simple código sass en esto .archivo sass. Se verá así:
$font-stack: Helvetica, sans-serif
$primary-color: #000
body
font: 100% $font-stack
color: $primary-color
Paso 4: Hacer cambios en ' paquete.json ' file
Agregue scripts para Compilar y Ver el código Sass presente en "sass_folder". Después de la compilación, el código css resultante debe almacenarse en "css_folder". Después cambia los "Scripts" en ' paquete.el archivo json debería tener este aspecto:
"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/"
}
Echa un vistazo a 'start', 'build: sass' y 'watch: sass' solo.
Paso 5: Ejecute la aplicación
Ahora puede ejecutar la aplicación mediante el siguiente comando:
npm start
Verá el código css compilado en "css_folder" con el mismo nombre de archivo 'demo.css". Se verá así (En este caso):
body {
font: 100% Helvetica, sans-serif;
color: #000; }
Ahora si haces algún cambio en .se reflejará en el archivo sass .css archivo dinámicamente como el script está viendo el código.
Si muestra error, Cierre el .archivo css cuando se realiza cualquier cambio en .sass file.
Nota: Para el código scss puede seguir los mismos pasos. Sólo tienes que poner .secs archivo en "sass_folder" en este caso.
[editado] En caso de que desee utilizar Angular CLI:
En el momento de la creación del nuevo proyecto Angular use cmnds mencionados a continuación:
Para sass:
ng new Demo_Project --style=sass
Para scss:
ng new Demo_Project --style=scss
Para cambiar el estilo existente:
ng set defaults.styleExt scss
Después de esto, puede usar Cli normalmente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-20 16:12:04
Puedo explicarte la primera.
Si está utilizando ng server
los archivos compilados se guardan en una carpeta oculta en su proyecto.
Si está utilizando ng build
, puede ver sus archivos compilados en la carpeta /dist. En esta carpeta puede encontrar sus estilos generales en el archivo estilos.[hashversion].css, pero los estilos de componentes locales se incluyen dentro de main.[hashversion].js por Webpack.
Angular-cli utiliza webpack, y si desea obtener más información, consulte Webpack Docs
ACTUALIZACIÓN
En el segundo caso, tienes que compilar sass manualmente. En la carpeta de la aplicación un tiene una aplicación.componente.ts que se compilarán en la misma carpeta a la aplicación.componente.js por compilador Typescript. Así que tienes que hacer lo mismo con sass. Importe el archivo CSS en el componente.
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`,
stylesUrl: ['app/app.component.css']
})
export class AppComponent { name = 'Angular'; }
Notó que no puede usar la ruta relativa porque todo se solicitará desde el directorio raíz.
Crea un app.component.sass
y pon tus estilos dentro.
Luego ejecute el compilador sass que compila el app.component.sass
a app.component.css
Ejecute el servidor y funcionará.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-16 12:23:02
Hay dos escenarios principales aquí.
-
Al crear un nuevo proyecto de CLI Angular, utilice el comando CLI
ng new my-angular-app --style=scss
-
Cuando ya se ha configurado un proyecto de CLI Angular, utilice el comando CLI
ng set default.styleExt scss
En el caso 2, debe convertir manualmente los archivos .css
existentes. Puede usar también use sass
o less
en lugar de scss
Echa un vistazo al artículo completo aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-19 09:21:23