Comments (14)
node12 for 12, esnext for the others I think
With Typescript 4.7 introducing "module": "node16" and "nodenext", would it make sense to use the "node16" for Node 16 + ESM and derivative configs?
from bases.
Ah yeah, nodenext
!
from bases.
Are these to use module: node12
or module: esnext
?
from bases.
node12 for 12, esnext for the others I think
from bases.
Does esnext
allow dynamic imports in a CommonJS file? Or maybe we're getting nodenext
and esnext
mixed up?
As far as I know, node12
and nodenext
are the only module options that allow mixing sync and async module loading in a CommonJS file:
import foo from 'foo'; // compiled to require()
const promise = import('bar'); // compiled to import()
from bases.
With TypeScript 4.5 and module: es2022
out, would you say this is a good node16-esm
config to start with?
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Node 16 ESM",
"compilerOptions": {
"module": "es2022",
"moduleResolution": "node",
"target": "es2021",
"lib": ["es2021"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
from bases.
@bodazhao Should these node*-esm configs use the forthcoming module: nodenext
or module: node12
? I thought that was the intent, perhaps @orta knows.
from bases.
that has been delayed, see microsoft/TypeScript#46452
from bases.
No sorry it is not delayed it is integrated and there is no save default stay with node as default is fine use node12 (cjs & es2015 modules aka __esModules = true)if you want to depend on import export filds of package.json files and finally use esnext the most complicated one which adds the same as node12 but out of esm context view.
from bases.
Handled by #90 - at least for node 16
from bases.
@mmykhaylov depends on the packages that the project consumes this sets if if moduleResolution is not configured diffrent also the moduleResolution so everything with a package.json and not propper exports fild will fail.
i added a node16 consumer folder as composit project for that case and stick with node as resolve algo for the legacy part my final target is ESNext but you could set it to node16 if you do nodejs only packaging and code.
from bases.
@orta what's the meaning of label you can do this
?
something like pr are welcomes ? or like do it in your tsconfig ?
from bases.
from bases.
Actually, this should be closed - we dont support merging tsconfigs now that they can have array extends
- I guess you can use node16 and esm now?
from bases.
Related Issues (20)
- Add react config HOT 2
- Reasoning behind removing the ESM config HOT 2
- Add bundler config HOT 2
- Node v21 support HOT 1
- Feature Request: Add a Dedicated Node ESM Configuration HOT 4
- Confused - why is this marked as deprecated on npm? HOT 2
- Chrome extension base HOT 1
- @tsconfig/node20 has tsconfig "moduleResolution": "node16" HOT 1
- Is it tsconfig/bases policy that there is no `vite-vue`? HOT 1
- tsconfig/recommended does not allow for "newer" ES features... HOT 1
- node presets: consider adding allowSyntheticDefaultImports: false? HOT 1
- Question: Why are `es2015` and `commonjs` recommended HOT 3
- tsconfig issue with incorrect argument for lib HOT 1
- TS7016 issue with HOT 1
- "strictest" includes non-typesafety relevant options HOT 1
- Module name '@typescript/lib-es2022/string' was not resolved. HOT 1
- Unclear which base is best for Web based typescript packages HOT 2
- import.meta.dirname HOT 1
- Question: Why `lib` and `target` are not the same in `@tsconfig/nodexx` HOT 2
- dynamic imports create a double default-wrapped export - e.g. `{ default: { default: Foo } }` HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bases.