archivo - Angular 2: Cómo importar correctamente normalize.css automáticamente
normalize css documentation (4)
Basado en esta respuesta , todo lo que tenía que hacer era:
@import ''~normalize.css/normalize.css'';
En el archivo styles.css.
Soy un nuevo usuario de Angular 2 y tengo algunos problemas con él.
Tradicionalmente, podríamos usar <link rel="stylesheet" href="node_modules/normalize.css/normalize.css" />
para importar un archivo css, pero quiero hacer que Angular 2 lo importe automáticamente usando la import
.
Intenté usar la misma manera cuando usé el Material 2:
// angular-cli-build.js
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
''normalize-path/index.js'',
]
});
};
// system-config.ts
const map: any = {
''normalize'': ''vendor/normalize-path'',
};
/** User packages configuration. */
const packages: any = {
''normalize'': {main: ''index.js''},
};
// app.component.ts
import { normalize } from ''normalize-path'';
El editor se quejará:
No se puede encontrar el módulo ''ruta de normalización''.
Y el código no compilará. Pero realmente no tengo idea de lo que estaba mal.
Con la versión actual ( 1.0.0-beta.15
) de angular-cli, la solución es bastante sencilla:
-
npm i normalize.css
- agregue
"../node_modules/normalize.css/normalize.css"
enapps[0].styles
en el archivo de configuraciónangular-cli.json
Nota: Si usa Angular 7, el archivo de configuración ahora es angular.json
, y la ruta a normalise.css en las apps[0].styles
debe ser "../node_modules/normalize.css/normalize.css"
.
Ejemplo:
{
"project": {
"version": "1.0.0-beta.15",
"name": "normalize.css-in-angular2"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": "assets",
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"../node_modules/normalize.css/normalize.css",
"styles.css"
],
"scripts": [],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"addons": [],
"packages": [],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"prefixInterfaces": false
}
}
La respuesta aceptada no parece estar funcionando en la aplicación. Necesitaba quitar el ../
en el nombre de la ruta.
El bit de los estilos angular.json debería ser algo como esto:
"styles": [
"node_modules/normalize.css/normalize.css",
"styles.css"
],
// angular-cli-build.js
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
''systemjs/dist/system-polyfills.js'',
''systemjs/dist/system.src.js'',
''zone.js/dist/**/*.+(js|js.map)'',
''es6-shim/es6-shim.js'',
''reflect-metadata/**/*.+(ts|js|js.map)'',
''rxjs/**/*.+(js|js.map)'',
''@angular/**/*.+(js|js.map)'',
''@angular2-material/**/*.+(js|js.map)'',
''normalize.css/normalize.css''
]
});
};
y simple agrega el enlace css a index.html
// index.html
<link href="vendor/normalize.css/normalize.css" rel="stylesheet">