web-dev-qa-db-ja.com

Angular 2:normalize.cssを正しく自動的にインポートする方法

私は新しい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'が見つかりません。

また、コードはコンパイルされません。しかし、私は本当に何が間違っていたのか分かりません。

20
Garfield550

Angular 8の更新

  1. Normalize.cssライブラリをインストールします。

    npm install --save normalize.css
    
  2. Styles.cssにインポートします

    @import '~normalize.css';
    

Angle-cliの現在の(1.0.0-beta.15)バージョンでは、解決策は非常に簡単です。

  1. npm i normalize.css
  2. 設定ファイル"../node_modules/normalize.css/normalize.css"apps[0].stylesangular-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
  }
}
31
Nicolas RTT

この回答 に基づいて、行う必要があるのはすべて:

  1. Normalize.cssライブラリをインストールします。

    npm install --save normalize.css
    
  2. Styles.cssにインポートします

    @import '~normalize.css';
    
34
elpddev

受け入れられた応答はアプリで機能していないようです。パス名の../を削除する必要がありました。

angular.json stylesビットは次のようになります。

"styles": [
    "node_modules/normalize.css/normalize.css",
    "styles.css"
  ],
5
Stefanie Fluin
// 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">
0
Kiss Robert