Как включить пользовательские файлы в сборку angular-cli?



RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8



Как я могу сказать angular-cli, чтобы включить файл из " src / assets "в корень" dist " при его сборке?



мы развертываем на хосте Windows и должны включить "web.config " файл, чтобы сказать IIS, чтобы направить все в индекс. Мы делали это до RC4, но со всеми обновлениями он провалился через трещины (я не помню, как мы это сделали).



я просматривала GitHub РЕПО документы и не нашли ничего полезного в отношении этой темы. Может быть, я не в том месте?



на ToC, есть маркер "добавление дополнительных файлов в сборку", но похоже, что раздел не существует.

844   4  

4 ответов:

свойство "активы" angular-cli.json можно настроить для включения пользовательских файлов в сборку angular-cli webpack. Итак, настройте значение свойства "активы" как массив. Например:

"assets": ["assets", "config.json",".htaccess"],

выше конфигурация будет копировать конфигурацию.и он jsn .htaccess в папку dist во время сборки angular-cli webpack. выше настройки работали в angular-cli версии 1.0.0-beta.18

Текущий Правильный Ответ:

команда добавила поддержку копирования определенных файлов как есть в выходную папку (dist по умолчанию) в более поздней версии Angular CLI (будет бета 17 или 19 - это было в final 1.х релизов на века).

вы просто добавляете его в массив в angular-cli.json как:

{
  ...
  "apps" [
    {
       "root": "src",
       "assets": [
         "assets",
         "web.config"
       ],
       ...
    }
  ]
  ...
}

(обратите внимание, что путь относительно )

я лично использую его и он работает просто отлично.

по состоянию на бета 24, у меня есть добавлена функция к угловому CLI, который гарантирует, что все assets файлы и папки подаются с сервера webpack dev при запуске ng test не только ng serve.

он также поддерживает обслуживание файлов активов на сервере webpack dev, используемом для модульных тестов (ng test).
(в случае, если вам нужны некоторые файлы JSON для тестов, или просто ненавижу видеть 404 предупреждения в консоли).
Они уже подаются из ng e2e потому что он работает полный ng serve.

и он также имеет более продвинутые функции, такие как фильтрация файлов, которые вы хотите из папки, и наличие имени выходной папки отличается от исходной папки:

{
  ...
  "apps" [
    {
      "root": "src",
      "assets": [
        "assets",
        "web.config",
        {
          // Copy contents in this folder
          "input": "../",
          // That matches this wildcard
          "glob": "*.config",
          // And put them in this folder under `dist` ('.' means put it in `dist` directly)
          "output": "."
        }
      ],
      ...
    }
  ]
  ...
}

.


.

[только для архивирования] оригинальный ответ (6 октября 2016 г.):

это не поддерживается в настоящее время, к сожалению (по состоянию на бета-16). Я поднял точный вопрос к команде (web.конфигурационные файлы), но это, кажется, не происходит в ближайшее время (если вы не разветвляете CLI и т. д.).

соблюдать этот вопрос для полного обсуждения и возможных будущих деталей.

С. П.

для файла JSON вы можете поместить его в ./src/assets/. Эта папка копируется как есть в ./dist/assets/. Это текущее поведение.

раньше в systemJS days был еще один ./public/ папка, которая была скопирована в ./dist/ напрямую, но это ушло в версиях Webpack, который обсуждается проблема, упомянутая выше.

одним из решений (хотя на мой взгляд это немного Хак) является объявление переменной в вашем main.ts файл, который требует дополнительного файла, который вы хотите включить в вывод сборки webpack.

пример:

import './polyfills.ts';

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';

/* HACK: Include standalone web.config file manually in webpack build
 *
 * Due to the way the beta angular-cli abstracts the webpack config files into
 * angular-cli.json and lacks current documentation we were unable to find
 * a way to include additional files manually in the webpack build output.
 *
 * For hosting on IIS we need to include a web.config file for
 * specifying rewrite rules to make IIS compatible with the Angular Router.
 * The one liner following this comment is a hack to accomplish this
 * and should be reviewed and corrected as soon as adequete documentation
 * is available for the angular-cli configuration file.
 */
const webConfig = require('file?name=[name].[ext]!./web.config');

if (environment.production) {
    enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

когда webpack встречает этот оператор объявления переменной в main.ts он будет излучать raw web.config файл как часть вывода сборки:

                            Asset       Size  Chunks             Chunk Names
                       inline.map    5.59 kB       2  [emitted]  inline
                       web.config  684 bytes          [emitted]
                 styles.bundle.js    16.7 kB    1, 2  [emitted]  styles
                        inline.js    5.53 kB       2  [emitted]  inline
                         main.map    5.36 MB    0, 2  [emitted]  main
                       styles.map    22.6 kB    1, 2  [emitted]  styles
                   main.bundle.js    4.85 MB    0, 2  [emitted]  main
                       index.html    1.98 kB          [emitted]
                assets/.npmignore    0 bytes          [emitted]
         assets/styles/global.css    2.74 kB          [emitted]
Child html-webpack-plugin for "index.html":
         Asset     Size  Chunks       Chunk Names
    index.html  4.45 kB       0
webpack: bundle is now VALID.

идеальное решение было бы в конфигурации webpack, но я не могу сделать головы или хвосты, как угловой-CLI заключается в том, что через angular-cli.json пока (бета.16).

поэтому, если у кого-то есть лучший ответ, который расширяет конфигурацию webpack для проекта, созданного angular-cli, я бы хотел его услышать.

в angular-cli есть раздел "скрипты".файл json. Вы можете добавить туда все сторонние файлы javascript.

Comments

    Ничего не найдено.