Angular 2: Как правильно автоматически импортировать normalize.css

Я новый пользователь Angular 2, и у меня есть некоторые проблемы с ним.

Традиционно мы могли бы использовать <link rel="stylesheet" href="node_modules/normalize.css/normalize.css" /> для импорта css файла, но я хочу сделать Angular 2, чтобы автоматически импортировать его с помощью import.

Я попытался использовать то же самое, когда использовал материал 2:

// angular-cli-build.js

module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      'normalize-path/index.js',
    ]
  });
};

Ответ 1

С текущей (1.0.0-beta.15) версией angular -cli решение довольно просто:

  • npm i normalize.css
  • добавить "../node_modules/normalize.css/normalize.css" в apps[0].styles в файл angular-cli.json
{
  "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": [
        "styles.css",
        "../node_modules/normalize.css/normalize.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
  }
}

Ответ 2

Основываясь на этом ответе, все, что вам нужно сделать, это:

@import '~normalize.css/normalize.css';

В файле styles.css.

Ответ 3

// 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'
    ]
  });
};