# 创建 Vue3 工程
# 使用@vue/cli
npm install @vue/cli -g
vue create vue3-webpack-project
cd vue3-webpack-project
npm run serve
# 使用 vite
npm init vite-app vue3-vite-project
cd vue3-vite-project
npm install
npm run dev
# 文件介绍
# 入口文件
// src/main.js
import { createApp } from "vue"; // 引入createApp工厂函数
import App from "App.vue";
const app = createApp(App)
app.mount("#app");
Vue3 版本不会导出一个默认对象,每一个 API 都需要使用解构赋值来导入,这也是为了 Tree-Shaking
# 配置文件
vue.config.js
module.exports = {
lintOnSave: false
};
配置 TS
const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
lintOnSave: false,
chainWebpack: (config) => {
// 处理ts文件 (新增loader)
config.module
.rule("ts")
.test(/\.tsx?$/)
.exclude.add(resolve("node_modules"))
.end()
.use("cache-loader")
.loader("cache-loader")
.options({
cacheDirectory: resolve("node_modules/.cache/ts-loader")
})
.end()
.use("babel-loader")
.loader("babel-loader")
.end()
.use("ts-loader")
.loader("ts-loader")
.options({
transpileOnly: true,
appendTsSuffixTo: ["\\.vue$"],
happyPackMode: false
})
.end();
}
};