ruby-syntax-tree/vscode-syntax-tree

v0.3.1 from marketplace doesn't work on Linux

xfalcox opened this issue · 4 comments

Installing latest version from the VSCode marketplace doesn't work and fail on Linux:

Activating extension 'ruby-syntax-tree.vscode-syntax-tree' failed: Cannot find module './Visualize'
Require stack:
- /home/user/.vscode-oss/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.1/out/extension.js
- /usr/lib/code/out/vs/loader.js
- /usr/lib/code/out/bootstrap-amd.js
- /usr/lib/code/out/bootstrap-fork.js.

Analyzing the package from https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ruby-syntax-tree/vsextensions/vscode-syntax-tree/0.3.1/vspackage and extracting it to a folder makes the error pretty clear:

    ~/Downloads/vscode-ruby-syntax-tree-v0.3.1  tree extension/out

├── debounce.js
├── Disasm.js
├── extension.js
├── ImplicitParentheses.js
├── Implicits.js
├── InlayHints.js
├── isualize.js
├── startClient.js
├── startLanguageClient.js
└── visualize.js

0 directories, 10 files


    ~/Downloads/vscode-ruby-syntax-tree-v0.3.1  grep Visualize extension/out/extension.js
const Visualize_1 = require("./Visualize");

See the capital V on the require version the lower case v on the actual file on the VSIX from the marketplace.

I can't reproduce this issue when compiling and packaging the extension on Linux with:

yarn install --frozen-lockfile
yarn compile
yarn package

Maybe it was packaged in a case-insensitive OS? No idea...

If you manually go into /home/user/.vscode-oss/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.1/out/extension.js and edit line as

- const Visualize_1 = require("./Visualize");
+ const Visualize_1 = require("./visualize");

it starts working fine.

Oh my gosh, so many issues. I will fix this one as well. Jeez.

To be clear, I'm frustrated at myself, not at you. Thank you for reporting.

xeger commented

FWIW the esbuild work will probably make this a non-issue; esbuild output is all bundled into a single extension.js file.

@xfalcox v0.3.2 out in the marketplace.