Монако-редактор и веб-сервер не работают
Я использую компонент ngx-monaco-editor вместе с Angular 5. Монако-редактор нормально загружается на localhost, но не на моем dev-сервере.
Не удалось загрузить скрипт с источником " https://se-dnexec.cic.muc/assets/monaco/vs/loader.js ".
Это моя конфигурация webpack.common (под плагинами):
new WriteFilePlugin(),
new CopyWebpackPlugin([
{
from: 'src/assets',
to: 'assets'
},
{
from: 'src/meta'
},
{
from: 'node_modules/ngx-monaco-editor/assets/monaco',
to: 'assets/monaco/',
}
],
isProd ? {
ignore: ['mock-data/**/*']
} : undefined
),
В webpack.dev я использую конфигурацию от webpack.common.
Когда я запускаю приложение с локального хоста под активами, я вижу это.
Но при запуске с dev-сервера я вижу, что папка monaco отсутствует:
Я использую:
- copy-webpack-plugin: "^ 4.5.1",
- write-file-webpack-plugin: "^ 4.2.0"
- веб-пакет: "^ 3.11.0",
- webpack-dev-server: "~ 2.7.1",
Я ожидаю, что когда я запускаю dev-сервер, который находится в папке assets, папка monaco также копируется, но по какой-то причине это не так. Может быть, кто-то испытал ту же проблему и может мне помочь. (Если нужна дополнительная информация, я могу предоставить ее).
Я пробовал следующее решение: не копирует файлы в фактическую папку вывода при использовании webpack-dev-server
2 ответа
Я использую компонент ngx-monaco-editor с Angular 5. Я проверил, что путь каким-то образом неправильный, локально он работает, но на сервере - нет. Так что это решение, которое я должен был сделать:
В NgxMonacoEditorConfig я сделал следующее:
baseUrl: './assets'
Если вы используете nginx для обслуживания своего производственного дистрибутива, вам нужно переопределить путь ресурсов для monaco следующим образом:
server {
server_name localhost;
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html =404;
}
location /assets/monaco/vs {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
}
Надеюсь, это сэкономит кому-то еще 5 часов!