-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configure TypeScript for static-site #877
Conversation
This ruleset was curated by and for the Nextstrain core team. <https://github.com/nextstrain/auspice/blob/b63eb8a1d118d661b7fc808637d21d8bbb5b7f5d/tsconfig.json>
I let `npm run dev` rewrite the file which added some options and applied some whitespace reformatting. To minimize the amount of changes in this commit, I restored the original whitespace reformatting then re-added the Next.js options.
This is generated upon running tsc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code passes type checks - both npx next build static-site
and cd static-site && npx tsc --noEmit
. Running the server and/or building the static-site doesn't result in modifications to the tsconfig from my testing. Mirroring the Auspice config is a nice move.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you find a way to get this working with VS-Code @victorlin?
I can get VS-Code to use the workspace's tsc
just fine (v4.9.3) but not to use this config file. According to microsoft/vscode#12463 this is a known bug and won't be fixed.
Specifically, in the current code I get errors in _app.tsx
because the default config doesn't use "jsx": "preserve"
:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What you saw is because that file wasn't included in the TSConfig:
nextstrain.org/static-site/tsconfig.json
Lines 58 to 61 in 8d45cc3
"include": [ | |
"next-env.d.ts", | |
"src/**/*", | |
], |
This should be fixed now with a7bd07c – can you try again?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes - thanks! I was (literally) looking in the wrong place 👍
(VS-Code's TypeScript output logs are pretty sparse, doesn't help debugging much...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which output logs are you referring to? So far I'm using it to look for rule violations (i.e. "problems", red squiggles) which seems sufficient. For example, when enabling noImplicitAny
on #874, I can see all the violations in static-site/src/components/ListResources/Modal.tsx
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh gotcha! It looks like that log only contains info on the TS Server process. There is a separate log that you can enable/view using the command TypeScript: Open TS Server log. It's much more verbose (6MB large from just a couple minutes of usage) but not sure if it would've been helpful in this case.
static-site/src/ was mirrored from Auspice, but the include filepaths should be project-specific. pages/ contains source files for this project and should be added.
Description of proposed changes
See commit messages
Related issue(s)
Checklist
npm run dev
doesn't overwrite TSConfig file locallyCheck if changes affect the resource index JSON revisionnoImplicitAny
(done)