vue@2混合使用js和ts
场景
旧的vue项目使用的是js开发,后期想把有些纯js开发的文件逐步替换为ts
具体步骤
- 安装
loader
和typescript
1
npm install typescript ts-loader --save-dev
- 配置
@vue/cli
一般度娘的结果就是添加下面的代码但是我遇到了不一样的问题1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18module.exports = {
configureWebpack: {
resolve: { extensions: ['.ts', '.tsx', '.js', '.json'] },
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/,
options: {
appendTsSuffixTo: [/\.vue$/],
happyPackMode: true,
},
},
],
},
},
}第一反应就是vue直接去找1
2
3ERROR Failed to compile with 1 error 4:54:18 PM
This relative module was not found:
* ./src/main.tssrc/main.ts
了,
vue inspect
一下,输出结果那直接把webpack配置改下就应该可以了。1
2
3
4
5
6
7// ...
entry: {
app: [
'./src/main.ts'
]
}
// ...
查了下@vue/cli
配置文档,没有找到配置项
直接在chainWebpack
中修改吧1
2
3
4
5module.exports = {
chainWebpack(config) {
config.entry('app').clear().add('./src/main.js')
},
}vue inspect
一下,输出结果这样就可以了。1
2
3
4
5
6
7// ...
entry: {
app: [
'./src/main.js'
]
}
// ...
PS
- 如果没有
vue.config.js
文件,直接创建一个就行了 - 我的
@vue/cli-service
版本为~4.5.0