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 funcionaría, ya que varios componentes centrales de Angular-CLI se ejecutan desde los módulos Ember-CLI.
No funcionó, pero no estoy seguro de si configuré mal algo.
Además, ¿cuál es la mejor manera de organizar estilos en un nuevo proyecto de Angular? Sería bueno tener el archivo sass en la misma carpeta que el componente.
La versión 9 de Angular CLI (utilizada para crear proyectos de Angular 9) ahora se basa en
style
esquemas en lugar destyleext
. Use el comando así:
ng config [email protected]/angular:component.style scss
y el angular.json resultante se verá así"schematics": { "@schematics/angular:component": { "style": "scss" } }
Otras posibles soluciones y explicaciones:
Para crear un nuevo proyecto con CLI angular con soporte sass, intente esto:
ng new My_New_Project --style=scss
También puede usar --style=sass
y si no sabe la diferencia, lea este artículo breve y fácil y si aún no lo sabe, continúe scss
y siga aprendiendo.
Si tiene un proyecto angular 5, use este comando para actualizar la configuración de su proyecto.
ng set defaults.styleExt scss
Para las últimas versiones
Para que Angular 6 establezca un nuevo estilo en un proyecto existente con CLI:
ng config [email protected]/angular:component.styleext scss
O directamente en angular.json:
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
Al generar un nuevo proyecto con Angular CLI, especifique el preprocesador css como
Utilice la sintaxis SCSS
ng new sassy-project --style=scss
Utilice la sintaxis de SASS
ng new sassy-project --style=sass
Establecer el estilo predeterminado en un proyecto existente ejecutando
Utilice la sintaxis SCSS
ng config [email protected]/angular:component.styleext scss
Utilice la sintaxis de SASS
ng config [email protected]/angular:component.styleext sass
El comando anterior actualizará su archivo de espacio de trabajo (angular.json) con
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
donde styleext
puede ser scss
o sass
según la elección.
Para nuevos proyectos podemos configurar las opciones --style=sass
o --style=scss
según el sabor deseado SASS / SCSS
Utilice la sintaxis de SASS
ng new project --style=sass
Utilice la sintaxis SCSS
ng new project --style=scss
luego instalar node-sass
,
npm install node-sass --save-dev
Para angular-cli
compilar archivos sass node-sass
, tuve que ejecutar,
npm install node-sass --save-dev
que instala node-sass
. Entonces
para la sintaxis SASS
ng set defaults.styleExt sass
para la sintaxis SCSS
ng set defaults.styleExt scss
para establecer el estilo predeterminadoExt a sass
(o)
cambiar styleExt
a sass
o scss
para la sintaxis deseada en .angular-cli.json
,
para la sintaxis SASS
"defaults": {
"styleExt": "sass",
}
para la sintaxis SCSS
"defaults": {
"styleExt": "scss",
}
ERROR in multi styles
Module not found: Error: Can't resolve '/home/user/projects/project/src/styles.css' in '/home/user/projects/project'
@ multi styles
que se solucionó cambiando las líneas de .angular-cli.json
,
"styles": [
"styles.css"
],
a cualquiera,
para la sintaxis SASS
"styles": [
"styles.sass"
],
para la sintaxis SCSS
"styles": [
"styles.scss"
],
Citado de Officials github repo here -
Para usar uno, simplemente instale, por ejemplo
npm install node-sass
y cambie el nombre de los archivos .css en su proyecto a .scss o .sass. Se compilarán automáticamente. El argumento de opciones de Angular2App tiene opciones sassCompiler, lessCompiler, stylusCompiler y compassCompiler que se pasan directamente a sus respectivos preprocesadores CSS.
Mira aquí
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:
ng set --global defaults.styleExt scss
Tenga en cuenta que algunas versiones de angular-cli contienen un error al leer la bandera global anterior ( ver enlace ). Si su versión contiene este error, genere su proyecto con:
ng new some_project_name --style=scss
Como dijo Mertcan, la mejor manera de usar scss es crear el proyecto con esa opción:
ng new My_New_Project --style=scss
Angular-cli también agrega una opción para cambiar el preprocesador css predeterminado después de que se haya creado el proyecto usando el comando:
ng set defaults.styleExt scss
Para obtener más información, puede buscar aquí su documentación:
¡Me di cuenta de un problema muy molesto al pasar a archivos scss! Uno DEBE pasar de un simple: styleUrls: ['app.component.scss']
a styleUrls: ['./app.component.scss']
(agregar ./
) enapp.component.ts
Lo que hace cuando genera un nuevo proyecto, pero aparentemente no cuando se crea el proyecto predeterminado. Si ve resolver errores durante la compilación de ng, verifique este problema. Solo me tomó ~ 1 hora.
Lo mejor podría ser ng new myApp --style=scss
Entonces 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 compilarlo css
, por esta razón podemos usar node-sass
, instalarlo como se muestra a continuación:
npm install node-sass --save-dev
¡Y deberías estar listo!
Si usa webpack, siga leyendo aquí:
Línea de comando dentro de la carpeta del proyecto donde está su package.json existente:
npm install node-sass sass-loader raw-loader --save-dev
En
webpack.common.js
, busque "reglas:" y agregue este objeto al final de la matriz de reglas (no olvide agregar una coma al final del objeto anterior):
{
test: /\.scss$/,
exclude: /node_modules/,
loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader
}
Luego, en su componente:
@Component({
styleUrls: ['./filename.scss'],
})
Si desea compatibilidad con CSS global, en el componente de nivel superior (probablemente app.component.ts) elimine la encapsulación e incluya el SCSS:
import {ViewEncapsulation} from '@angular/core';
@Component({
selector: 'app',
styleUrls: ['./bootstrap.scss'],
encapsulation: ViewEncapsulation.None,
template: ``
})
class App {}
desde Angular starter aquí .
ng set --global defaults.styleExt=scss
está en desuso desde ng6. Recibirá este mensaje:
get / set han quedado obsoletos a favor del comando config
Deberías usar:
ng config [email protected]/angular:component '{ styleext: "scss"}'
Si desea apuntar a un proyecto específico (reemplace {proyecto} con el nombre de su proyecto):
ng config projects.{project}[email protected]/angular:component '{ styleext: "scss"}'
Angular-CLI es el método recomendado y es el estándar en la comunidad Angular 2+.
Crete 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 en sus archivos de componentes)
Convertir un proyecto existente (CLI superior a v6)
"@schematics/angular:component": {
"styleext": "sass"
}
Para Angular 9.0 y superior, actualice el "schematics":{}
objeto en el archivo angular.json como este:
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
}
Lo siguiente debería funcionar en un proyecto CLI 6 angular. Es decir, si obtiene:
get / set han quedado obsoletos en favor del comando config.
npm install node-sass --save-dev
Luego ( asegurándose de cambiar el nombre del proyecto )
ng config [email protected]/angular:component.styleext sass
Para obtener su nombre de proyecto predeterminado, use:
ng config defaultProject
Sin embargo: si ha migrado su proyecto desde <6 hasta angular 6, es muy probable que la configuración no esté allí. En cuyo caso, podría obtener:
Carácter JSON no válido: "s" en 0: 0
Por lo tanto angular.json
, se requerirá una edición manual de .
Querrá que se parezca a esto (tomando nota de la propiedad styleex):
...
"projects": {
"Sassy": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
...
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 para comenzar.
A partir del 10/3/2019, Anguar abandonó el apoyo del descaro. Independientemente de la opción a la que haya pasado --style
al ejecutar ng new
, siempre se .scss
generan archivos. Es una pena que el apoyo descarado se haya abandonado sin ninguna explicación.
Establecerlo como predeterminado global
ng set defaults.styleExt=scss --global
Integración del preprocesador de CSS Angular CLI admite todos los preprocesadores de CSS principales:
Para usar estos preprocesadores, simplemente agregue el archivo a las styleUrls de su componente:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'app works!';
}
Al generar un nuevo proyecto, también puede definir qué extensión desea para los archivos de estilo:
ng new sassy-project --style=sass
O establezca el estilo predeterminado en un proyecto existente:
ng config [email protected]/angular:component.styleext scss
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
Traté de actualizar mi proyecto para usar el sass usando este comando
ng establece valores predeterminados.styleExt scss
pero tengo esto
get / set han quedado obsoletos en favor del comando config.
Así que eliminé mi proyecto (ya que estaba comenzando y no tenía código en mi proyecto) y creé uno nuevo con sass inicialmente configurado
ng nueva my-sassy-app --style = scss
Pero agradecería si alguien pudiera compartir una forma de actualizar el proyecto existente, ya que sería bueno.
La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.
Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.
Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.
Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.
Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
Anteriormente, Kotaku informó que un hotel Godzilla se estaba abriendo en Tokio este abril. Junto al hotel, estaba programada la aparición de una enorme cabeza de 'Zilla, pero todo lo que hemos visto fueron imágenes conceptuales computarizadas.
Foto: Getty Desde que lanzó The Boring Company hace un año, Elon Musk ha mencionado varios sitios de construcción posibles para el negocio de perforación de túneles y ha descartado una vaga referencia a una aprobación gubernamental "verbal" para un túnel Hyperloop que conecta la ciudad de Nueva York y Washington. , CC. Pero ahora sabemos que al menos un alcalde quiere que Musk perfore un agujero debajo de su ciudad.
Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.
Hemos pirateado algunas ciudades industriales en esta columna, como Los Ángeles y Las Vegas. Ahora es el momento de una ciudad militar-industrial-compleja.
El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.
Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon
El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.
El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".
Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.
Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.