He leído la documentación , que dice que si quiero usar scss
tengo que ejecutar el siguiente comando:
ng set defaults.styleExt scss
Pero cuando hago eso y hago ese archivo, sigo recibiendo este error en mi consola:
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
a ver lo que ha cambiado.ng new whatever --style=scss
que se muestra en los documentos . ¡No siga las instrucciones para configurar un proyecto existente si eso no es lo que está haciendo!Respuestas:
Para Angular 6 verifique la documentación oficial
Nota: Para
@angular/cli
versiones anteriores a las que se6.0.0-beta.6
usanng set
en lugar deng config
.Para proyectos existentes
En un proyecto angular-cli existente que se configuró con los
css
estilos predeterminados , deberá hacer algunas cosas:scss
si obtiene un error:
Value cannot be found.
use el comando:(* fuente: opciones de CLI SASS angular )
Cambie el nombre de sus
.css
archivos existentes a.scss
(es decir, styles.css y app / app.component.css)Apunte la CLI para buscar styles.scss
Para proyectos futuros
Como mencionó @Serginho, puede configurar la extensión de estilo al ejecutar el
ng new
comandoSi desea establecer el valor predeterminado para todos los proyectos que cree en el futuro, ejecute el siguiente comando:
fuente
css
ascss
in.angular-cli.json
automáticamente creará archivos scss para cada nuevo componente generado en el futuro.ng config schematics.@schematics/angular:component.styleext scss
según lo dicho por @ hamilton.limaA partir de ng6 esto se puede lograr con el siguiente código agregado a
angular.json
nivel raíz:Cambiar manualmente en
.angular.json
:fuente
schematics
hecho a nivel raíz, pero anidado dentro de mi proyecto enangular.json
. ¿Debería ignorar eso y agregar esto en el nivel raíz?schematics
ahora también está anidado.Abra el archivo angular.json
1.cambiar de
"schematics": {}
a
"src/styles.css"
a
"src/styles.scss"
luego verifique y cambie el nombre de todos los
.css
archivos y actualice los archivos de style.ts styleUrls de.css to .scss
fuente
ng config schematics.@schematics/angular:component.styleext scss
como se especifica en los documentos oficiales: github.com/angular/angular-cli/wiki/stories-css-preprocessorsPara Angular 6,
nota: @ schematics / angular es el esquema predeterminado para la CLI angular
fuente
Integración de preprocesador CSS para CLI angular: 6.0.3
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:
Documentación CLI angular para todos los principales preprocesadores CSS
fuente
Invalid JSON character: "s" at 0:0.
ng config
(como el anterior) es el mejor método, pero que todavía tienen que cambiar el nombre de*.css
los archivos a*.scss
Y reemplazar las referencias enangular.json
astyle.css
constyle.scss
y actualizar todas las referencias de archivos componentes enstyleUrls
propiedad a los nuevos nombres. ... entonces funciona muy bien!Para proyectos existentes :
En
angular.json
archivoEn
build
parte y entest
parte, reemplace:"styles": ["src/styles.css"],
por"styles": ["src/styles.scss"],
Reemplazar:
"schematics": {},
por"schematics": { "@schematics/angular:component": { "style": "scss" } },
En su proyecto, cambie el nombre de sus
.css
archivos a.scss
Para un nuevo proyecto , este comando hace todo el trabajo:
Para configuración global
Parece que las nuevas versiones no tienen un comando global
fuente
Use el comando:
fuente
En ng6 necesitas usar este comando, de acuerdo con una publicación similar :
fuente
Para los usuarios de las extensiones Nrwl que se encuentran con este hilo: todos los comandos son interceptados por Nx (por ejemplo,
ng generate component myCompent
) y luego pasados a AngularCLI.El comando para que SCSS funcione en un espacio de trabajo de Nx:
ng config schematics.@nrwl/schematics:component.styleext scss
fuente
Se puede aplicar un cambio de fuerza bruta. Esto funcionará para cambiar, pero es un proceso más largo.
Vaya a la carpeta de aplicaciones src / app
Abra este archivo: app.component.ts
Cambia este código
styleUrls: ['./app.component.css']
astyleUrls: ['./app.component.scss']
Guardar y cerrar.
En la misma carpeta src / app
Cambie el nombre de la extensión del archivo app.component.css a (app.component.scss)
Siga este cambio para todos los demás componentes. (ej. hogar, acerca de, contacto, etc.)
El archivo de configuración angular.json es el siguiente. Se encuentra en la raíz del proyecto.
Buscar y reemplazar el css cámbialo a (scss) .
Guardar y cerrar.
Por último, reinicie su
ng serve -o
.Si el compilador se queja de usted, repita los pasos nuevamente.
Asegúrese de seguir de cerca los pasos en app / src .
fuente
En la última versión de Angular (v9), el siguiente código debe agregar
angular.json
Podría agregarse usando el siguiente comando:
fuente