Как упаковать и выпустить плагины Angular2?

В своем приложении я создал несколько атрибутов и структурных директив, которые, я думаю, будут чрезвычайно полезны для других. Однако после поиска в документах Angular2, переполнении Google и стека я не могу найти никаких руководств о том, как упаковывать и выпускать отдельные плагины.

Как я могу объединить директиву в пакет, который можно установить и импортировать в другие проекты?


person tctc91    schedule 06.04.2016    source источник


Ответы (1)


Вы можете упаковать свою библиотеку с помощью компилятора tsc. Главное, что нужно понять на этом уровне, это то, что, используя следующую конфигурацию, вы не можете напрямую объединить скомпилированные файлы JS для получения одного файла JS.

В конфигурации компилятора TypeScript:

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "rootDir": ".",
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}

В HTML

System.config({
  packages: {
    app: {
      defaultExtension: 'js',
      format: 'register'
    }
  }
});

На самом деле эти файлы JS будут содержать анонимные модули. Анонимный модуль — это файл JS, который использует System.register, но без имени модуля в качестве первого параметра. Это то, что компилятор машинописного текста генерирует по умолчанию, когда systemjs настроен как менеджер модулей.

Таким образом, чтобы все ваши модули были в одном JS-файле, вам необходимо использовать свойство outFile в конфигурации компилятора TypeScript.

Этот вопрос может дать вам дополнительные подсказки:

Вы также можете использовать webpack для упаковки библиотек (и приложений). Вы можете посмотреть, что делает ng2-select. См. этот файл конфигурации:

person Thierry Templier    schedule 07.04.2016