A daily automated build of Microsoft Monaco.
Warning: This is personal endeavour.
If you just want a quick editor on a web page the monaco-editor
will get you there quicker : https://www.npmjs.com/package/monaco-editor. This internally uses stuff like monaco-langauges
and monaco-editor-core
.
But if you want to specialize the experience for a particular language (in our case JavaScript
/TypeScript
as we do in alm.tools) you can use this as a reference for build automation to make your own version.
src
: the source codeout-*
(e.g. out-editor
) : the built assetsbuild
: scripts for building various stuff (including monaco)Please see vscode/build/monaco/README.md
. We simplified it and the process is documented in prepare.sh
. Some notes on monaco-editor-core:
build/gulpfile.editor.js
contains the monaco building stuff.monaco.d.ts
api is built with build/monaco/api.ts
.Note: the monaco.d.ts.recipe
is loosely related to editor.main.ts
etc. You get to use the outcome of the recipe (i.e. monaco.d.ts
) as typeof monaco.something
in your editor.main
stuff to ensure types match but it can fail silently due to excessive use of any
so be careful 🌹
Also @internal
stuff is stripped by api.ts
, if you try to bring it all in you will get errors as a lot of stuff is hidden and you will need to bring
in all of it using api
+ editor.main
(quite a bit of work.)
All done using prepare.sh
(with the help of stuff in the extensions
folder).
Monaco is in the process of making more addons. Best to add them with
git submodule add https://github.com/Microsoft/monaco-css.git
And then add the path to .npmignore
Finally you need to figure out how to integrate it in editor.main
Due to limited testing and automated release we recommend hard version installs:
npm install monaco --save --save-exact
You can put this your package.json to make it easier for you to update to latest (and now you can npm run umonaco
):
"umonaco": "npm install nmonaco@latest --save --save-exact && npm run tsc",