• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

解决vue cli使用typescript后打包巨慢的问题

vue 搞代码 4年前 (2022-01-08) 22次浏览 已收录 0个评论

这篇文章主要介绍了解决vue cli使用typescript后打包巨慢的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

最近新开了一个项目,虽然用的是 vue 技术栈,但是为了项目的健壮性,还是强上了 typescript, 于是引出了下面的问题。

问题

之前使用过 ts-loader 打包 react 项目,给我的感觉就是巨慢,开发环境下,每次保存后,需要等10秒钟左右才能构建完成,当时为了解决这个问题,把 ts-loader 替换成了 babel 的 typescript 插件,结果是非常的快,每次保存一秒中之内就能完成构建。这次在 vue 中使用 typescript,开发环境下还算快,但是构建生产包时,进程都能够被卡死,体验非常糟糕,接下来讲解如何替换 typescript 构建工具。

替换 ts-loader

修改 vue webpack 配置之前,我们需要知道 vue 是如何配置 ts-loader的,运行如下代码,输出 webpack 配置文件:

 vue inspect > output.js

打开 output.js 搜索 ts-loader,可以看到如下配置:

 /* config.module.rule('ts') */ { test: /\.ts$/, use: [ /* config.module.rule('ts').use('cache-loader') */ { loader: 'cache-loader', options: { cacheDirectory: '/Users/edz/Desktop/project/senguo/cashier-admin/node_modules/.cache/ts-loader', cacheIdentifier: '<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码$网!</span>aee3033a' } }, /* config.module.rule('ts').use('babel-loader') */ { loader: 'babel-loader' }, /* config.module.rule('ts').use('ts-loader') */ { loader: 'ts-loader', options: { transpileOnly: true, appendTsSuffixTo: [ '\\.vue$' ], happyPackMode: false } } ] }, /* config.module.rule('tsx') */ { test: /\.tsx$/, use: [ /* config.module.rule('tsx').use('cache-loader') */ { loader: 'cache-loader', options: { cacheDirectory: '/Users/edz/Desktop/project/senguo/cashier-admin/node_modules/.cache/ts-loader', cacheIdentifier: 'aee3033a' } }, /* config.module.rule('tsx').use('babel-loader') */ { loader: 'babel-loader' }, /* config.module.rule('tsx').use('ts-loader') */ { loader: 'ts-loader', options: { transpileOnly: true, happyPackMode: false, appendTsxSuffixTo: [ '\\.vue$' ] } } ] } 

可以看到使用到了 ts-loader, 同时还使用到了 babel, 这倒是为我们后期的配置提供了不少方便。

首先删除 ts-loader 的配置,因为 vue webpack 的配置使用的是 webpack-chain,所以这里也需要用到这个工具才能进行修改,代码如下:

 // vue.config.js module.exports = { chainWebpack: config => { config.module.rule('ts').uses.delete('ts-loader') config.module.rule('tsx').uses.delete('ts-loader') } } 

接着安装 babel 的 typescript 插件

 yarn add @babel/preset-typescript @babel/plugin-transform-typescript

然后修改 babel.config.js 如下:

 module.exports = { presets: [ '@vue/app', "@babel/preset-typescript" ], plugins: [ "@babel/plugin-transform-typescript" ] } 

如果你在代码中使用到了 jsx, 那么可能还需要添加如下配置项,反正我是遇到了解析 jsx 出错的问题。

 module.exports = { presets: [ '@vue/app', ["@babel/preset-typescript", { "allExtensions": true, "isTSX": true }], ], plugins: [ "@babel/plugin-transform-typescript" ] } 

最后再打包,嗯~ 比之前快多了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是解决vue cli使用typescript后打包巨慢的问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决vue cli使用typescript后打包巨慢的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址