Я работаю над приложением Angular (v6) и, в конкретном компоненте, я хочу инициализировать веб-работника через Worker
, передав файл JavaScript, который я хочу минимизировать в рабочей среде.
@Injectable({
providedIn: 'root',
})
export class MyService {
constructor() {
this.worker = new Worker('script.js');
this.worker.onmessage = (event: MessageEvent) => {
...
};
}
}
Приложение angular.json
выглядит следующим образом:
{
"projects": {
"app-name": {
"architect": {
"build": {
"options": {
"scripts": [
"src/scripts/worker.script.js",
...
]
}
}
}
}
}
}
Файл src/scripts/worker.script.js
содержит типичную самозапускающуюся Javascript анонимную функцию:
(function() {
...
}());
Теперь, это решение удовлетворяет меня только частично, потому что все сценарии сводятся вместе в scripts.js
, поэтому то, что я передаю Работнику, может быть больше, чем мне нужно.В частности, если в какой-то момент мне понадобится второй Worker
, использующий второй сценарий, мой подход потерпит неудачу.Пожалуйста, обратите внимание на следующие ограничения:
- Я хочу, чтобы файл JavaScript был минимизирован, поэтому я хочу не добавлять его в раздел
assets
angular.json
- Iне удается изменить код файла JavaScript.