Я настоятельно рекомендую использовать ember-monaco вместо monaco-editor, если только не все верно: вы уже успешно используете Embroider, в ember-monaco отсутствует ключевая функция, которую невозможно добавить в этот пакет, и вы можете посвятить значительные усилия его настройке вручную в приложении Ember (недели).
Чтобы использовать плагины Webpack в приложении Ember, вам также необходимо установить и использовать вышивают . Обычные сборки ember-cli вообще не используют Webpack, поэтому плагин Webpack не будет работать.
Если вы привержены прямому использованию monaco-editor, вы должны:
- используйте Embroider
- с установленным монако-редактором
- с установленным плагином Webpack
monaco-editor-webpack-plugin
, - установите полифилл (
@cardstack/requirejs-monaco-ember-polyfill
) и выполните файл readme для регистрации - , зарегистрируйте плагин webpack и импортируйте файлы css
Вот пример файла ember-cli-build. js file:
'use strict';
process.env.BROCCOLI_ENABLED_MEMOIZE = 'true';
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
module.exports = function(defaults) {
let app = new EmberApp(defaults, {
prember: {
// we're not pre-rendering any URLs yet, but we still need prember because
// our deployment infrastructure already expects `_empty.html` to exist
// for handling unknown URLs.
urls: [],
},
});
app.import('node_modules/monaco-editor/dev/vs/editor/editor.main.css');
return (function() {
const Webpack = require('@embroider/webpack').Webpack;
const { join } = require('path');
const { writeFileSync } = require('fs');
return require('@embroider/compat').compatBuild(app, Webpack, {
staticAddonTestSupportTrees: true,
staticAddonTrees: true,
staticHelpers: true,
staticComponents: true,
onOutputPath(outputPath) {
writeFileSync(join(__dirname, '.embroider-app-path'), outputPath, 'utf8');
},
packagerOptions: {
webpackConfig: {
plugins: [new MonacoWebpackPlugin()],
},
},
// ...