私は新しいAngular 2ユーザーであり、いくつかの問題があります。
従来は、<link rel="stylesheet" href="node_modules/normalize.css/normalize.css" />
cssファイルをインポートしますが、import
を使用して自動的にインポートするには、Angular 2にしたいです。
マテリアル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';
エディターは文句を言うでしょう:
モジュール 'normalize-path'が見つかりません。
また、コードはコンパイルされません。しかし、私は本当に何が間違っていたのか分かりません。
Angular 8の更新
Normalize.cssライブラリをインストールします。
npm install --save normalize.css
Styles.cssにインポートします
@import '~normalize.css';
Angle-cliの現在の(1.0.0-beta.15
)バージョンでは、解決策は非常に簡単です。
npm i normalize.css
"../node_modules/normalize.css/normalize.css"
のapps[0].styles
にangular-cli.json
を追加します注:Angular 7)を使用する場合、構成ファイルはangular.json
になり、正規化するパスになりますapps[0].styles
の.cssは"../node_modules/normalize.css/normalize.css"
でなければなりません。
例:
{
"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
}
}
この回答 に基づいて、行う必要があるのはすべて:
Normalize.cssライブラリをインストールします。
npm install --save normalize.css
Styles.cssにインポートします
@import '~normalize.css';
受け入れられた応答はアプリで機能していないようです。パス名の../
を削除する必要がありました。
angular.json stylesビットは次のようになります。
"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'
]
});
};
そして、CSSリンクをindex.htmlに追加するだけです
// index.html
<link href="vendor/normalize.css/normalize.css" rel="stylesheet">