styleext scss cli angular npm sass angular-cli

scss - sass angular 5



¿Cómo agrego la compilación de Sass en Angular CLI 6: angular.json? (2)

Acabo de crear un nuevo proyecto Angular utilizando el nuevo Angular CLI 6.0, pero necesito agregar la compilación de Sass a mi proyecto. Soy consciente de que puede establecer una bandera cuando crea un proyecto, pero mi proyecto ya está creado y se ha trabajado.

El nuevo archivo de configuración que se genera con la nueva CLI angular ahora se llama angular.json lugar de angular-cli.json . El esquema para el archivo también es diferente, con nuevas propiedades.

En el antiguo angular-cli.json hay una sección donde puedes configurar el stylExt así.

"defaults": { "styleExt": "scss" }

pero no estoy seguro de dónde colocar exactamente esto, ya que después de las propiedades de "test" y "lint" , da un error de pelusa de:

Matches multiple schemas when only one must validate.

y la edificación produce:

Schema validation failed with the following errors: Data path "[''defaults'']" should NOT have additional properties(styleExt).

En cuanto a los documentos de CLI, no veo nada que indique dónde colocar "styleExt" .

He visto otras respuestas que aconsejan: ng set defaults.styleExt scss cuyos lanzamientos get/set have been deprecated in favor of the config command. .

Intenté ng config set defaults.styleExt scss y npm config set defaults.styleExt scss El primero npm config set defaults.styleExt scss un error y este último aparentemente no tuvo efecto en el archivo, pero sin error.


En Angular 6, es más fácil que eso. La compilación se maneja automáticamente! Cómo esa ? Para usar scss a nivel de componentes, debe asignar un nombre al archivo con la extensión scss (lo mismo vale menos, styl ). Y en tu componente, también cambias el estilo correspondiente a scss .

Aquí una captura de pantalla del doc:

Y para usar Scss a escala global (src / styles.css), entonces necesita cambiar styles.css a styles.scss (lo mismo por menos, styl ... etc). Y luego vas en angular.json y cambias los viejos styles.css al nuevo valor de styles.scss. Como se muestra en la siguiente imagen:

Aquí está el enlace para el documento de la primera parte para los que desean explorarse a sí mismos: https://angular.io/guide/component-styles#non-css-style-files

Ahora, ¿qué pasa con la configuración, ng-cli para que al generar un nuevo componente la extensión sea por defecto scss? Use el comando ng config como sigue:

ng config schematics.@schematics/angular:component.styleext scss

Eso actualizará angular.json con:

"schematics": { "@schematics/angular:component": { "styleext": "scss" } }

Que es el equivalente al antiguo angular-cli.json.

defaults: { "styleext": "scss" }

Eso es para un proyecto que ya se inició pero no está configurado como predeterminado en scss. Si está creando un nuevo proyecto, use la opción --style para especificarlo de la siguiente manera:

ng new my-project --style=scss

Y no tendrá que usar el comando precedente, que es un comando de configuración que nos permite actualizar el campo especificado en el archivo angular.json (porque ya estará configurado).


Haciendo exactamente lo que Smokey Dawson comentó ,

"projects": { "angular-app": { "root": "", "sourceRoot": "src", "projectType": "application", "prefix": "app", "schematics": { "@schematics/angular:component": { "styleext": "scss" } }, "architect": {...} } }

Lo anterior es el resultado. Entonces, en su aplicación, debajo de los schematics teclas, agregue una clave @schematics/angular:component con el estilo de clave establecido en scss .

Esto debe aplicarse a su archivo angular.json en el directorio raíz de su proyecto.