1 介绍
-
CLI是Command-Line Interface,翻译为命令行界面,但是俗称脚手架。
-
Vue CLI是一个官方发布vue.js项目脚手架
-
使用vue-cli可以快速搭建vue开发环境以及对应的webpack配置。
-
使用vue-cli可以快速搭建vue开发环境以及对应的webpack配置
2 Vue CLI使用前提 Webpack
Vue.js官方脚手架工具就使用了webpack模板
Webpack全局安装
npm install webpack -g
3 Vue CLI安装
https://cli.vuejs.org/zh/guide/
3.1 安装脚手架3.x
安装Vue脚手架(全局)
# 脚手架3.x(后面拉一个模板就能用2)
npm install -g @vue/cli
注意:上面安装的是Vue CLI3的版本,如果需要按照Vue CLI2的方式初始化项目时不可以的
查看版本
vue --version
Vue CLI3.x初始化项目
vue create my-project
3.2 拉取脚手架2.x
拉取脚手架2.x官方教程
npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack my-project
Vue CLI2初始化项目
vue init webpack my-project
4 常用命令
打包项目
npm run build
运行项目
npm run serve
6 其他常用文件
.editorconfig
# 编辑器配置
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
.eslintrc
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
},
env: {
browser: true,
},
extends: [
'plugin:vue/essential',
],
plugins: [
'vue'
],
rules: {
"no-unused-vars": 'off',
'generator-star-spacing': 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
}
}
5 实战
"vue": "^2.6.11"
( package.json中 )
@vue/cli 4.5.15
( vue -V 查看 )
创建项目
vue create my-project
修改 package.json
"dependencies": {
"vue": "^2.6.11",
},
"devDependencies": {
"vue-template-compiler": "^2.6.11"
}
修改main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false
new Vue({
router,
render: h => h(App),
}).$mount('#app')
router/index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'Test',
component: () => import('../views/Test.vue')
}
]
const router = new VueRouter({
base: process.env.BASE_URL,
routes
})
export default router
7 第三方安装
vue-router
npm install --save vue-router
axios
npm install --save axios
饿了么
npm i element-ui -S
npm install --save element-ui
echarts
Vue引用echarts图表
npm install echarts --save
<h2><a id="1__0"></a>1 介绍</h2>
<ul>
<li>
<p>CLI是Command-Line Interface,翻译为命令行界面,但是俗称脚手架。</p>
</li>
<li>
<p>Vue CLI是一个官方发布vue.js项目脚手架</p>
</li>
<li>
<p>使用vue-cli可以快速搭建vue开发环境以及对应的webpack配置。</p>
</li>
<li>
<p>使用vue-cli可以快速搭建vue开发环境以及对应的webpack配置</p>
</li>
</ul>
<h2><a id="2_Vue_CLI_Webpack_10"></a>2 Vue CLI使用前提 Webpack</h2>
<p>Vue.js官方脚手架工具就使用了webpack模板</p>
<ul>
<li>
<p>对所有的资源会压缩等优化操作</p>
</li>
<li>
<p>它在开发的过程中提供了一套完整的功能,能够使得我们开发过程变得高效</p>
</li>
</ul>
<p>Webpack全局安装</p>
<pre><div class="hljs"><code class="lang-shell">npm install webpack -g
</code></div></pre>
<h2><a id="3_Vue_CLI_24"></a>3 Vue CLI安装</h2>
<p>https://cli.vuejs.org/zh/guide/</p>
<h3><a id="31_3x_27"></a>3.1 安装脚手架3.x</h3>
<p>安装Vue脚手架(全局)</p>
<pre><div class="hljs"><code class="lang-shell"><span class="hljs-meta"># </span><span class="language-bash">脚手架3.x(后面拉一个模板就能用2)</span>
npm install -g @vue/cli
</code></div></pre>
<p>注意:上面安装的是Vue CLI3的版本,如果需要按照Vue CLI2的方式初始化项目时不可以的</p>
<p>查看版本</p>
<pre><div class="hljs"><code class="lang-shell">vue --version
</code></div></pre>
<p>Vue CLI3.x初始化项目</p>
<pre><div class="hljs"><code class="lang-shell">vue create my-project
</code></div></pre>
<h3><a id="32_2x_49"></a>3.2 拉取脚手架2.x</h3>
<p><a href="https://cli.vuejs.org/zh/guide/creating-a-project.html#%E6%8B%89%E5%8F%96-2-x-%E6%A8%A1%E6%9D%BF-%E6%97%A7%E7%89%88%E6%9C%AC" target="_blank">拉取脚手架2.x官方教程</a></p>
<pre><div class="hljs"><code class="lang-shell">npm install -g @vue/cli-init
<span class="hljs-meta"># </span><span class="language-bash">`vue init` 的运行效果将会跟 `vue-cli@2.x` 相同</span>
vue init webpack my-project
</code></div></pre>
<p>Vue CLI2初始化项目</p>
<pre><div class="hljs"><code class="lang-shell">vue init webpack my-project
</code></div></pre>
<h2><a id="4__64"></a>4 常用命令</h2>
<p>打包项目</p>
<pre><div class="hljs"><code class="lang-shell">npm run build
</code></div></pre>
<p>运行项目</p>
<pre><div class="hljs"><code class="lang-shell">npm run serve
</code></div></pre>
<h2><a id="6__79"></a>6 其他常用文件</h2>
<p><code>.editorconfig</code></p>
<pre><div class="hljs"><code class="lang-javascript"># 编辑器配置
root = <span class="hljs-literal">true</span>
[*]
charset = utf-<span class="hljs-number">8</span>
indent_style = space
indent_size = <span class="hljs-number">2</span>
end_of_line = lf
insert_final_newline = <span class="hljs-literal">true</span>
trim_trailing_whitespace = <span class="hljs-literal">true</span>
</code></div></pre>
<p><code>.eslintrc</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-comment">// https://eslint.org/docs/user-guide/configuring</span>
<span class="hljs-comment">// eslint是用来管理和检测js代码风格的工具,可以和编辑器搭配使用,</span>
<span class="hljs-comment">// 如vscode的eslint插件 当有不符合配置文件内容的代码出现就会报错或者警告</span>
<span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = {
<span class="hljs-attr">root</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">parserOptions</span>: {
<span class="hljs-attr">parser</span>: <span class="hljs-string">'babel-eslint'</span>
},
<span class="hljs-attr">env</span>: {
<span class="hljs-attr">browser</span>: <span class="hljs-literal">true</span>,
},
<span class="hljs-attr">extends</span>: [
<span class="hljs-comment">// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention</span>
<span class="hljs-comment">// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.</span>
<span class="hljs-string">'plugin:vue/essential'</span>,
<span class="hljs-comment">// https://github.com/standard/standard/blob/master/docs/RULES-en.md</span>
<span class="hljs-comment">// 'standard'</span>
],
<span class="hljs-comment">// required to lint *.vue files</span>
<span class="hljs-attr">plugins</span>: [
<span class="hljs-string">'vue'</span>
],
<span class="hljs-comment">// add your custom rules here</span>
<span class="hljs-attr">rules</span>: {
<span class="hljs-string">"no-unused-vars"</span>: <span class="hljs-string">'off'</span>, <span class="hljs-comment">// 关掉语法检查</span>
<span class="hljs-comment">// allow async-await</span>
<span class="hljs-string">'generator-star-spacing'</span>: <span class="hljs-string">'off'</span>,
<span class="hljs-comment">// allow debugger during development</span>
<span class="hljs-string">'no-debugger'</span>: process.<span class="hljs-property">env</span>.<span class="hljs-property">NODE_ENV</span> === <span class="hljs-string">'production'</span> ? <span class="hljs-string">'error'</span> : <span class="hljs-string">'off'</span>
}
}
</code></div></pre>
<h2><a id="5__132"></a>5 实战</h2>
<ul>
<li><code>"vue": "^2.6.11"</code>( package.json中 )</li>
<li><code>@vue/cli 4.5.15</code>( vue -V 查看 )</li>
</ul>
<p>创建项目</p>
<pre><div class="hljs"><code class="lang-javascript">vue create my-project
</code></div></pre>
<p>修改 <code>package.json</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-string">"dependencies"</span>: {
<span class="hljs-comment">// 修改下面</span>
<span class="hljs-string">"vue"</span>: <span class="hljs-string">"^2.6.11"</span>,
},
<span class="hljs-string">"devDependencies"</span>: {
<span class="hljs-comment">// 修改下面</span>
<span class="hljs-string">"vue-template-compiler"</span>: <span class="hljs-string">"^2.6.11"</span>
}
</code></div></pre>
<p>修改<code>main.js</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-keyword">import</span> <span class="hljs-title class_">Vue</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'vue'</span>
<span class="hljs-keyword">import</span> <span class="hljs-title class_">App</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'./App.vue'</span>
<span class="hljs-keyword">import</span> router <span class="hljs-keyword">from</span> <span class="hljs-string">'./router'</span>
<span class="hljs-comment">// 饿了么</span>
<span class="hljs-keyword">import</span> <span class="hljs-title class_">Element</span>UI <span class="hljs-keyword">from</span> <span class="hljs-string">'element-ui'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-string">'element-ui/lib/theme-chalk/index.css'</span>;
<span class="hljs-title class_">Vue</span>.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">Element</span>UI);
<span class="hljs-title class_">Vue</span>.<span class="hljs-property">config</span>.<span class="hljs-property">productionTip</span> = <span class="hljs-literal">false</span>
<span class="hljs-keyword">new</span> <span class="hljs-title class_">Vue</span>({
router,
<span class="hljs-attr">render</span>: <span class="hljs-function"><span class="hljs-params">h</span> =></span> <span class="hljs-title function_">h</span>(<span class="hljs-title class_">App</span>),
}).$mount(<span class="hljs-string">'#app'</span>)
</code></div></pre>
<p><code>router/index.js</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-keyword">import</span> <span class="hljs-title class_">Vue</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'vue'</span>
<span class="hljs-keyword">import</span> <span class="hljs-title class_">VueRouter</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'vue-router'</span>
<span class="hljs-comment">// import Test from "../views/Test";</span>
<span class="hljs-title class_">Vue</span>.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">VueRouter</span>)
<span class="hljs-keyword">const</span> routes = [
<span class="hljs-comment">// component: () => import('../views/Ajax.vue')</span>
{
<span class="hljs-attr">path</span>: <span class="hljs-string">'/'</span>,
<span class="hljs-attr">name</span>: <span class="hljs-string">'Test'</span>,
<span class="hljs-attr">component</span>: <span class="hljs-function">() =></span> <span class="hljs-title function_">import</span>(<span class="hljs-string">'../views/Test.vue'</span>)
}
]
<span class="hljs-keyword">const</span> router = <span class="hljs-keyword">new</span> <span class="hljs-title class_">VueRouter</span>({
<span class="hljs-comment">// mode: 'history',</span>
<span class="hljs-attr">base</span>: process.<span class="hljs-property">env</span>.<span class="hljs-property">BASE_URL</span>,
routes
})
<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> router
</code></div></pre>
<h2><a id="7__200"></a>7 第三方安装</h2>
<p><code>vue-router</code></p>
<pre><code class="lang-powershell">npm install --save vue-router
</code></pre>
<p><code>axios</code></p>
<pre><code class="lang-powershell">npm install --save axios
</code></pre>
<p><code>饿了么</code></p>
<pre><code class="lang-powershell">npm i element-ui -S
npm install --save element-ui
</code></pre>
<p><code>echarts</code><br />
<a href="https://blog.csdn.net/zx77588023/article/details/122803718" target="_blank">Vue引用echarts图表</a></p>
<pre><code class="lang-powershell">npm install echarts --save
</code></pre>
留言