build: add watch/compile tasks for CLI (#182344)

* build: add watch/compile tasks for CLI

I spent time this morning working on the 'developer experience' of the
CLI in vscode, mainly getting the CLI to cross-compile chasing our
initial idea of having it auto-build in a devcontainer.

After some effort and disabling tunnels connections (to avoid having to
pull in OpenSSL which is a huge pain to cross compile), I was able to
get it to cross-compile from Linux to Windows, using the mingw linker.
I could probably figure out how to get macOS working as well with more
effort. However, I'm not a big fan of this, effectively it's one more
'platform' of build we need to support and test.

I think a better approach is downloading the latest compiled CLI from
the update server instead, as needed. That's what this PR does. It just
places the CLI where it _would_ normally get compiled to by cargo; so
far we don't need to do anything special outside of that.
A notice is shown to users if this fallback happens.

* update from review
This commit is contained in:
Connor Peet
2023-06-20 14:34:11 -07:00
committed by GitHub
parent 2929ec4996
commit 2138622b04
7 changed files with 255 additions and 114 deletions
+2
View File
@@ -45,8 +45,10 @@
"valid-layers-check": "node build/lib/layersChecker.js",
"update-distro": "node build/npm/update-distro.mjs",
"web": "echo 'yarn web' is replaced by './scripts/code-server' or './scripts/code-web'",
"compile-cli": "gulp compile-cli",
"compile-web": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile-web",
"watch-web": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js watch-web",
"watch-cli": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js watch-cli",
"eslint": "node build/eslint",
"stylelint": "node build/stylelint",
"playwright-install": "node build/azure-pipelines/common/installPlaywright.js",