Как обслуживать приложение угловых элементов в режиме просмотра?

Я успешно создал приложение Angular Elements, следуя этому замечательному руководству.

Процесс «обслуживания» состоит из:

  1. Создайте приложение и объедините его в один файл js ng build --prod --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js
  2. Теперь отправьте файл HTML, содержащий пользовательский элемент. В данном случае lite-server.

Но каждый раз, когда я вношу изменения в пользовательский элемент и не хочу видеть его обновленным, мне нужно повторно запускать скрипт сборки. Итак, мой вопрос в том, как я могу построить это в режиме просмотра?

Соответствующие части моего package.json выглядят так:

"buildForShip": "ng build --prod --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js",
"plainHTML": "lite-server"
"start": "npm run -s buildForShip && npm run -s plainHTML"

person DauleDK    schedule 19.11.2018    source источник
comment
Пожалуйста, добавьте объект сценария package.json.   -  person SiddAjmera    schedule 19.11.2018
comment
Вы можете добавить опцию watch для ng serve, но не для ng build   -  person inthevortex    schedule 19.11.2018
comment
@inthevortex это неправда - вы можете запустить сборку в режиме просмотра. Проверьте это: stackoverflow.com/a/43347849/3694288   -  person DauleDK    schedule 19.11.2018


Ответы (1)


Следуя статье, вы могли добавить скрипт с именем plainHTML в объект scripts вашего файла package.json. Вы можете просто добавить --watch после него.

Что-то вроде этого:

"plainHTML": "lite-server --watch"

Это должно запустить сервер в режиме наблюдения и искать изменения в файлах.

Кроме того, поскольку ваш файл будет сгенерирован после его сборки, вы также можете использовать --watch в сценарии ng build для buildForShip:

"buildForShip": "ng build --prod --watch --output-hashing=none && cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js",
person SiddAjmera    schedule 19.11.2018
comment
но файл ship.js обновляется только при запуске команды сборки, так что это не сработает - person DauleDK; 19.11.2018
comment
Вы пытались запустить режим ng build in --watch? - person SiddAjmera; 19.11.2018
comment
да - и это работает. Но мне также нужно, чтобы файлы были объединены в один, как указано в скрипте сборки (&& cat dist/tamigo-calendar/{runtime,polyfills,scripts,main}.js > ./plainHTML/ship.js), иначе lite-сервер его не подхватит - person DauleDK; 19.11.2018