Soy nuevo en Angular y vengo de la comunidad Ember. Intentando usar el nuevo Angular-CLI basado en Ember-CLI.
Necesito saber la mejor manera de manejar SASS en un nuevo proyecto angular. Intenté usar el ember-cli-sass
repositorio para ver si funcionaba, ya que una serie de componentes principales de Angular-CLI se ejecutan fuera de los módulos Ember-CLI.
No funcionó pero, una vez más, no estoy seguro de si configuré algo mal.
Además, ¿cuál es la mejor manera de organizar estilos en un nuevo proyecto angular? Sería bueno tener el archivo sass en la misma carpeta que el componente.
angular
sass
angular-cli
JDillon522
fuente
fuente
Respuestas:
Otras posibles soluciones y explicaciones:
Para crear un nuevo proyecto con CLI angular con soporte sass, intente esto:
También puede usar
--style=sass
y si no conoce la diferencia, lea este artículo breve y fácil y si aún no lo sabe, simplementescss
continúe aprendiendo.Si tiene un proyecto angular 5, use este comando para actualizar la configuración de su proyecto.
Para las últimas versiones
Para que Angular 6 establezca un nuevo estilo en un proyecto existente con CLI:
O directamente en angular.json:
fuente
ng set defaults.styleExt scss
style
propiedad ascss
en.angular-cli.json
ng set defaults.styleExt scss --global
ng config schematics.@schematics/angular:component.styleext scss
Actualización para Angular 6+
Proyectos nuevos
Al generar un nuevo proyecto con CLI angular, especifique el preprocesador css como
Usar sintaxis SCSS
Usar sintaxis SASS
Actualización de proyecto existente
Establecer estilo predeterminado en un proyecto existente ejecutando
Usar sintaxis SCSS
Usar sintaxis SASS
El comando anterior actualizará su archivo de espacio de trabajo (angular.json) con
donde
styleext
puede serscss
osass
según la elección.Respuesta original (para Angular <6)
Proyectos nuevos
Para nuevos proyectos podemos establecer las opciones
--style=sass
o--style=scss
según el sabor deseado SASS / SCSSUsar sintaxis SASS
Usar sintaxis SCSS
luego instalar
node-sass
,Actualización de proyectos existentes
Para
angular-cli
compilar archivos sass connode-sass
, tuve que ejecutar,que se instala
node-sass
. Luegopara la sintaxis SASS
para la sintaxis SCSS
para establecer el estilo predeterminadoExt a sass
(o)
cambiar
styleExt
asass
oscss
para la sintaxis deseada en.angular-cli.json
,para la sintaxis SASS
para la sintaxis SCSS
Aunque generó errores de compilación.
que se solucionó cambiando las líneas de
.angular-cli.json
,a cualquiera,
para la sintaxis SASS
para la sintaxis SCSS
fuente
angular-cli.json
realidad es así.angular-cli.json
. Una vez que me di cuenta de esto, lo edité y esto está funcionando perfectamente. Gracias.angular-cli.json
fue cambiado como un archivo oculto (.angular-cli.json
) recientemente (rc2). Fijo..css
archivo existente , es posible que deba cerrarlo y volver a abrirlo en su editor para que reconozca correctamente la sintaxis sass. Esto es cierto incluso con el último Visual Studio,Citado del repositorio de Github de los funcionarios aquí:
Mira aquí
fuente
Dile a angular-cli que siempre use scss por defecto
Para evitar pasar
--style scss
cada vez que genera un proyecto, es posible que desee ajustar su configuración predeterminada de angular-cli globalmente, con el siguiente comando:Tenga en cuenta que algunas versiones de angular-cli contienen un error al leer el indicador global anterior ( ver enlace ). Si su versión contiene este error, genere su proyecto con:
fuente
--style=scss
Como dijo Mertcan, la mejor manera de usar scss es crear el proyecto con esa opción:
Angular-cli también agrega una opción para cambiar el preprocesador css predeterminado después de que se haya creado el proyecto mediante el comando:
Para obtener más información, puede consultar aquí su documentación:
https://github.com/angular/angular-cli
fuente
ng set
no parece funcionar en la configuración de laapps
matriz. P.ej.ng set apps.prefix blah
lanza un "token inesperado b en JSON en la posición 0".¡Noté un problema muy molesto al pasar a archivos scss! Uno DEBE pasar de un simple:
styleUrls: ['app.component.scss']
astyleUrls: ['./app.component.scss']
(agregar./
) enapp.component.ts
Qué ng hace cuando genera un nuevo proyecto, pero aparentemente no cuando se crea el proyecto predeterminado. Si ve errores de resolución durante la compilación de ng, compruebe este problema. Solo me llevó ~ 1 hora.
fuente
Lo mejor podría ser
ng new myApp --style=scss
Luego, Angular CLI creará cualquier componente nuevo con scss para usted ...
Tenga en cuenta que el uso
scss
no funciona en el navegador como probablemente sepa ... por lo que necesitamos algo para compilarlocss
, por esta razón podemos usarlonode-sass
, instálelo de la siguiente manera:y deberías estar listo para ir!
Si usa webpack, lea aquí:
de arranque angular aquí .
fuente
ng set --global defaults.styleExt=scss
está en desuso desde ng6. Recibirá este mensaje:Deberías usar:
Si desea apuntar a un proyecto específico (reemplace {proyecto} con el nombre de su proyecto):
fuente
Angular-CLI es el método recomendado y es el estándar en la comunidad Angular 2+.
Crea un nuevo proyecto con SCSS
ng new My-New-Project --style=sass
Convertir un proyecto existente (CLI menor que v6)
ng set defaults.styleExt scss
(debe cambiar el nombre de todos los archivos .css manualmente con este enfoque, no olvide cambiar el nombre de sus archivos componentes)
Convertir un proyecto existente (CLI mayor que v6)
"@schematics/angular:component": { "styleext": "sass" }
fuente
Para Angular 9.0 y superior, actualice el
"schematics":{}
objeto en el archivo angular.json de esta manera:fuente
style
ahora lo renombraronLo siguiente debería funcionar en un proyecto CLI 6 angular. Es decir, si está obteniendo:
Luego ( asegurándose de cambiar el nombre del proyecto )
Para obtener su nombre de proyecto predeterminado use:
Sin embargo: si ha migrado su proyecto desde <6 hasta angular 6, existe una buena posibilidad de que la configuración no esté allí. En cuyo caso puede obtener:
Por lo tanto
angular.json
, se requerirá una edición manual de .Querrá que se vea así (tomando nota de la propiedad styleex):
Me parece un esquema demasiado complejo. ¯_ (ツ) _ / ¯
Ahora tendrá que ir y cambiar todos sus archivos css / less para que sean scss y actualizar cualquier referencia en componentes, etc., pero debería estar listo.
fuente
A partir del 10/03/2019, Anguar abandonó el apoyo de sass. No importa a qué opción pasaste
--style
al ejecutarng new
, siempre obtienes.scss
archivos generados. Es una lástima que se haya perdido el apoyo sin ninguna explicación.fuente
npm install -g @angular/[email protected]
Establecerlo como predeterminado global
ng set defaults.styleExt=scss --global
fuente
Integración del preprocesador CSS La CLI angular admite todos los preprocesadores CSS principales:
Para usar estos preprocesadores, simplemente agregue el archivo a los StyleUrls de su componente:
Al generar un nuevo proyecto, también puede definir qué extensión desea para los archivos de estilo:
O establezca el estilo predeterminado en un proyecto existente:
nota: @ schematics / angular es el esquema predeterminado para la CLI angular
Las cadenas de estilo agregadas a la matriz @ Component.styles deben escribirse en CSS porque la CLI no puede aplicar un preprocesador a los estilos en línea.
Basado en documentación angular https://github.com/angular/angular-cli/wiki/stories-css-preprocessors
fuente
Traté de actualizar mi proyecto para usar el sass usando este comando
pero tengo esto
Así que eliminé mi proyecto (ya que recién comenzaba y no tenía código en mi proyecto) y creé uno nuevo con sass inicialmente configurado
Pero agradecería que alguien pueda compartir una forma de actualizar el proyecto existente, ya que sería bueno.
fuente
Paso 1. Instale el paquete bulma usando npm
Paso 2. Abra angular.json y actualice el siguiente código
Eso es.
Para exponer fácilmente las herramientas de Bulma, agregue stylePreprocessorOptions a angular.json.
BULMA + ANGULAR 6
fuente