Как связать вызов скрипта npm после каждой сборки ng serve? - PullRequest
1 голос
/ 10 октября 2019

Я пытаюсь связать вызов сценария ng serve во время выполнения, но когда я выполнил эту команду, второй цепочечный сценарий build-components.js запускается только при первом вызове.
Я думал одновременно пакет в этом случае позволит обоим сценариям работать в последовательности в соответствии с документами https://www.npmjs.com/package/concurrently

Я хочу запускать build-components.js сценарий при каждом запуске ng serve (то есть обнаруживать источникизменить).

скрипт Package.json :

"build:watch": "concurrently \"ng serve --port 4003\" \"node build-components.js\""

тестирование

 concurrently "ng serve --port 4003" "node build-components.js"

[1] node build-components.js exited with code 0
[0] i 「wds」: Project is running at http://localhost:4003/webpack-dev-server/

Вопрос:

Как запустить другой скрипт npm после каждой сборки ng serve?

Я также посмотрел на перехватчики сообщений npm, но, похоже, скрипт не запускается после запуска ng serve.

http://www.marcusoft.net/2015/08/pre-and-post-hooks-for-npm-scripting.html#hooks-pre-and-post

Это build-components.js скрипт для справки. Он копирует некоторые дополнительные файлы сборки в общую папку для хостинга:

const fs = require('fs-extra');
const concat = require('concat');

(async function build() {
  const js = [
    './dist/app/runtime-es2015.js',
    './dist/app/main-es2015.js',
    './dist/app/scripts.js',
  ];
  const css = ['./dist/app/styles.css'];

  await fs.ensureDir('components');
  await concat(js, 'components/component.js');
  await concat(css, 'components/component.css');
})();

1 Ответ

1 голос
/ 10 октября 2019

Это невозможно. ng serve не завершается при запуске в режиме наблюдения, поэтому цепочка элементов для запуска после него не будет иметь никакого эффекта. У команды serve нет зацепок для этого.

...