Skip to content

Commit dfaffc0

Browse files
kevinmarrecpi0
authored andcommitted
feat(nuxt-ts): typescript support improvements (nuxt#4750)
1 parent 8c91588 commit dfaffc0

5 files changed

Lines changed: 19 additions & 16 deletions

File tree

examples/typescript-vuex/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"compilerOptions": {
3-
"target": "es5",
3+
"target": "esnext",
44
"module": "esnext",
55
"moduleResolution": "node",
6-
"lib": ["es2015", "dom"],
6+
"lib": ["esnext", "esnext.asynciterable", "dom"],
77
"esModuleInterop": true,
88
"experimentalDecorators": true,
99
"allowJs": true,

examples/typescript/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"compilerOptions": {
3-
"target": "es5",
3+
"target": "esnext",
44
"module": "esnext",
55
"moduleResolution": "node",
6-
"lib": ["es2015", "dom"],
6+
"lib": ["esnext", "esnext.asynciterable", "dom"],
77
"esModuleInterop": true,
88
"experimentalDecorators": true,
99
"allowJs": true,

packages/cli/src/utils/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import chalk from 'chalk'
99
import prettyBytes from 'pretty-bytes'
1010
import env from 'std-env'
1111

12-
export const requireModule = esm(module, {
12+
export const requireModule = process.env.NUXT_TS ? require : esm(module, {
1313
cache: false,
1414
cjs: {
1515
cache: true,

packages/webpack/src/config/base.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ export default class WebpackBaseConfig {
185185
this.nuxt,
186186
{ isServer: this.isServer, perfLoader }
187187
)
188+
const babelLoader = {
189+
loader: require.resolve('babel-loader'),
190+
options: this.getBabelOptions()
191+
}
188192

189193
return [
190194
{
@@ -224,23 +228,22 @@ export default class WebpackBaseConfig {
224228
// item in transpile can be string or regex object
225229
return !this.modulesToTranspile.some(module => module.test(file))
226230
},
227-
use: perfLoader.js().concat({
228-
loader: require.resolve('babel-loader'),
229-
options: this.getBabelOptions()
230-
})
231+
use: perfLoader.js().concat(babelLoader)
231232
},
232233
{
233234
test: /\.ts$/i,
234-
loader: 'ts-loader',
235-
options: this.loaders.ts
235+
use: [
236+
babelLoader,
237+
{
238+
loader: 'ts-loader',
239+
options: this.loaders.ts
240+
}
241+
]
236242
},
237243
{
238244
test: /\.tsx$/i,
239245
use: [
240-
{
241-
loader: require.resolve('babel-loader'),
242-
options: this.getBabelOptions()
243-
},
246+
babelLoader,
244247
{
245248
loader: 'ts-loader',
246249
options: this.loaders.tsx

test/fixtures/typescript/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"compilerOptions": {
3-
"target": "es5",
3+
"target": "esnext",
44
"module": "esnext",
55
"moduleResolution": "node",
66
"lib": ["esnext", "esnext.asynciterable", "dom"],

0 commit comments

Comments
 (0)