vue 项目搭建的几种方式
cdn
引入
在jsdelivr找到你想要使用的Vue
版本后复制链接,在<script>
标签引入,Vue
会被注册为一个全局变量。
比如想使用最新的版本vue@3.2.45
点击第一个就会打开对应的文件资源。
https://cdn.jsdelivr.net/npm/vue@3.2.45/dist/vue.global.min.js
这时候在项目中的添加一个<script>
标签,把上方的链接引入进去就可以使用vue
了。
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.45/dist/vue.global.min.js"></script>
<body>
<div id="app">{{value}}</div>
</body>
<script>
Vue.createApp({
data() {
return {
value: "Hello Vue!",
};
},
}).mount("#app");
</script>
除此之外,还可以使用es module
的引入方式。
<body>
<div id="app">{{value}}</div>
</body>
<script type="module">
import { createApp } from "https://cdn.jsdelivr.net/npm/vue@3.2.45/dist/vue.esm-browser.js";
createApp({
data() {
return {
value: "Hello Vue!",
};
},
}).mount("#app");
</script>
如果cdn
请求超时,可以先将文件资源下载在项目中,后在<script>
标签中引入项目中的资源。
注意:在引入链接时有些资源携带了runtime
字段,这个表示非完整版(不支持template
写法,只能使用render
函数)
vue-cli
vue-cli
是官方提供的命令行工具,可用于快速搭建大型单页应用。
npm i vue-cli -g
在安装好后,我们可以使用三个命令来创建项目: vue create
、 vue init
和 vue ui
vue create
是vue-cli3.x
的初始化方式,目前模板是固定的,模板选项可自由配置,创建出来的是vue-cli3
的项目,与vue-cli2
项目结构不同,配置方法不同,具体配置方法参考官方文档。
vue create [options] <app-name>
vue create demo1
运行之后需要选择一些配置。
vue-cli
提供了两个预设模板,当然你也可以自行配置。
vue init
vue init
是vue-cli2.x
的初始化方式,可以使用github
上面的一些模板来初始化项目,webpack
是官方推荐的标准模板名。
vue init [options] <template> <app-name>
vue init webpack demo2
之后按步骤进行配置即可。
vue ui
通过这条命令可以打开一个管理Vue
项目的可视化页面。
create-vue
目前vue-cli
正处于维护阶段,如果想要创建新项目,建议使用这种方式。
npm create vue@3
vue3
并不支持ie
,你可以使用vue2
npm create vue@2
之后按照步骤进行配置即可。
其他方式
create-vue
是基于vite
搭建的,而vue-cli
是基于webpack
搭建的一个脚手架工具,我们也可以通过vite
或者webpack
自己搭建一个项目。
使用vite
搭建项目
安装vite
npm create vite@latest
执行命令后按照步骤选择一个框架(vue
或者react
等)即可。
使用webpack
搭建
在项目中安装webpack
相关库及vue
。
npm i webpack webpack-cli html-webpack-plugin style-loader css-loader vue vue-loader -D
在webpack.config.js
文件中进行配置。
const HTMLWebpackPlugin = require("html-webpack-plugin");
const { VueLoaderPlugin } = require("vue-loader");
module.exports = {
entry: "./src/index.js",
plugins: [
new HTMLWebpackPlugin({
template: "./public/index.html",
}),
new VueLoaderPlugin(),
],
module: {
rules: [
{
test: /\.css$/,
use: ["style-loader", "css-loader"],
},
{
test: /\.vue$/,
use: ["vue-loader"],
},
],
},
devServer: {
port: 8081,
hot: true,
compress: true,
},
};