solid-playground icon indicating copy to clipboard operation
solid-playground copied to clipboard

Scripts without import/export appear to be duplicated

Open edemaine opened this issue 3 years ago • 6 comments

Playground link

image

As described by @modderme123 in https://github.com/solidjs/solid-playground/pull/103#issuecomment-1121503818:

This is an issue with files that don't have imports or exports and are then treated as a global script file. One trick might be to add a tsconfig flag to ignore output_dont_import.tsx?

I tried adding an exclude option to languages.typescript.typescriptDefaults.setCompilerOptions (in src/components/editor/setupSolid.ts) but it doesn't seem to fix the problem.

I previously wrote:

It seems that src/components/editor/monacoTabs.tsx's MonacoTabs creates two models: the model at the top of the function and the model for each tab in tabs. I'm seeing the same source code in both the root model and a tab, which is presumably the source of the problem. [...] Could we remove one of the duplicates (presumably the top-level model?)?

edemaine avatar May 10 '22 13:05 edemaine

Amusingly, I think #100 will fix this, because it adds an import to all .tsx files. Thanks @otonashixav. 😄

edemaine avatar May 10 '22 14:05 edemaine

Hmm, I'm having a hard time reproducing this. Can you confirm that the playground link above still works for you?

milomg avatar May 15 '22 07:05 milomg

Hmm, it seems to be nondeterministic, and possibly failing only with nonshortened Playground link. Try loading that link and shift-reloading once or twice. But definitely still happens sometimes I'm afraid.

edemaine avatar May 15 '22 17:05 edemaine

I just realized I may never have explained what the code at the top of the file is: that is the compiled output that you see in the output tab. Currently that is what happens when all of the tabs run through rollup (although in the beta, that will just be what happens when the current tab runs through babel)

milomg avatar Jun 18 '22 04:06 milomg

I'm not quite sure what you're referring to. Top of what file?

FWIW, I just reproduced this bug by loading the Playground link, and then appending some blank lines at the end of the file. (It didn't reproduce upon reloading anymore.)

edemaine avatar Jun 20 '22 14:06 edemaine

Top of the monacoTabs file. the reason you are seeing two duplicate models is because one of those models is the full bundled output (which happens to be the same if there is only one tab)

milomg avatar Jun 20 '22 22:06 milomg