gpt4 book ai didi

typescript - 如何创建支持 TypeScript 的 Nuxt 版本?

转载 作者:行者123 更新时间:2023-12-01 21:58:41 25 4
gpt4 key购买 nike

我正在尝试使用命令“npm run build”构建一个 nuxtjs 应用程序,该命令正在执行“nuxt build”。

但是,构建失败了,看起来 nuxt 不知道如何编译 Typescript 代码。但有趣的是,“npm run dev”命令运行没有任何问题,应用程序运行正常。只是生产构建失败了。

我注意到,如果我从我的单个文件组件的脚本标签中删除 lang="ts",错误就消失了,但是当然,typescript 代码不会编译,并且会出现其他错误。我尝试了各种 tsconfig.json 配置,但都没有用。我在 package.json 文件的依赖项中包含 typescript 和 ts-loader 模块。

"ts-loader": "^5.3.3",
"typescript": "^3.3.3",

这是我在运行“npm run build”时收到的错误消息示例

ERROR in ./pages/index.vue?vue&type=script&lang=ts& (./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib??ref--0-2!./node_modules/ts-loader??ref--0-3!./node_modules/babel-loader/lib??ref--4-0!./node_modules/ts-loader??ref--4-1!./node_modules/vue-loader/lib??vue-loader-options!./pages/index.vue?vue&type=script&lang=ts&)
Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 4)
Cannot read property 'errors' of undefined

at successfulTypeScriptInstance (../node_modules/ts-loader/dist/instances.js:90:28)
at Object.getTypeScriptInstance (../node_modules/ts-loader/dist/instances.js:34:12)
at Object.loader (../node_modules/ts-loader/dist/index.js:17:41)
@ ./pages/index.vue?vue&type=script&lang=ts& 1:0-404 1:420-423 1:425-826 1:425-826
@ ./pages/index.vue
@ ./.nuxt/router.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./.nuxt/client.js

这是我的 tsconfig.json

{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"experimentalDecorators": true,
"noImplicitAny": false,
"noImplicitThis": false,
"strictNullChecks": true,
"removeComments": true,
"suppressImplicitAnyIndexErrors": true,
"allowSyntheticDefaultImports": true,
"allowJs": true,
"baseUrl": ".",
"paths": {
"~/*": [
"./*"
]
},
"noUnusedLocals": true,
"resolveJsonModule": true,
"esModuleInterop": true
}
}

有没有人知道如何让 NuxtJs 与 Typescript 一起用于生产构建而不仅仅是用于开发?

谢谢

最佳答案

最终的解决方案(如@Aldarund)推荐使用 nuxt-ts,但没有任何额外的 typescript 模块,例如 typescriptnuxt-typescript。您甚至不需要 ts-loader 模块。nuxt.config.js 必须重命名为 nuxt.config.ts

更不用说您必须在 npm 脚本中仅使用 nuxt-ts 而不是普通的 nuxt

编辑 2019 年 4 月:从 Nuxt.js 的 2.5.0 版本开始, typescript 支持不再需要 nuxt-ts。 Nuxt.js 通过安装 @nuxt/typescript 正式支持 typescript。

Nuxt v2.5.0 release notes

关于typescript - 如何创建支持 TypeScript 的 Nuxt 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54652899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com