本文介绍Vue项目的安装和初始化等内容。

我们在项目中使用vue.js框架的方式主要有以下几种情况

① 已有项目可以选择下载并导入独立版本
② 使用 CDN 方法导入框架
③ 使用npm或者cnpm来安装
④ 使用vue-cli来快速搭建大型单页项目

① 下载并导入独立版本

我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用script标签引入。

② 使用 CDN 方法导入框架

BootCDN: https://cdn.bootcss.com/vue/2.2.2/vue.min.js

unpkg:https://unpkg.com/vue/dist/vue.js和npm发布的最新版本保持一致。

cdnjs : https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.8/vue.min.js

在页面中通过script标签设置src属性为对应的地址即可引入。

③ 使用npm或者cnpm来安装

这里npm安装命令和相关的过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
wendingding:~ wendingding$ cd /Users/文顶顶/Desktop/V/my-project 
wendingding:my-project wendingding$ npm install vue
npm WARN saveError ENOENT: no such file or directory, open '/Users/文顶顶/Desktop/V/my-project/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/文顶顶/Desktop/V/my-project/package.json'
npm WARN my-project No description
npm WARN my-project No repository field.
npm WARN my-project No README data
npm WARN my-project No license field.

+ vue@2.5.17
added 1 package in 4.759s


╭─────────────────────────────────────╮
│ │
│ Update available 5.5.1 → 6.4.0 │
│ Run npm i -g npm to update │
│ │
╰─────────────────────────────────────╯

npm安装的主要命令

$ npm --version 查看npm的版本信息
$ npm install vue 使用npm安装vue到当前的目录

如果觉得npm的安装速度慢,那么也可以使用淘宝的镜像及其cnpm命令。

cnmp安装的主要命令

$ npm install -g cnpm --registry=https://registry.npm.taobao.org 全局安装cnmp
$ cnpm install vue

④ 使用vue-cli来快速搭建大型单页项目

这里列出使用vue-cli来快速搭建大型单页项目的命令和主要过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
wendingding:V wendingding$ cd my-vue/
wendingding:my-vue wendingding$ npm install -g cnpm --registry=https://registry.npm.taobao.org
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least ....
/usr/local/bin/cnpm -> /usr/local/lib/node_modules/cnpm/bin/cnpm
+ cnpm@6.0.0
added 629 packages in 20.318s
wendingding:my-vue wendingding$ cnpm install --global vue-cli
Downloading vue-cli to /usr/local/lib/node_modules/vue-cli_tmp
Copying /usr/local/lib/node_modules/vue-cli_tmp/_vue-cli@2.9.6@vue-cli to /usr/local/lib/node_modules/vue-cli
Installing vue-cli's dependencies to /usr/local/lib/node_modules/vue-cli/node_modules
[1/20] commander@^2.9.0 installed at node_modules/_commander@2.17.1@commander
.....
[20/20] inquirer@^6.0.0 installed at node_modules/_inquirer@6.1.0@inquirer
deprecate metalsmith@2.3.0 › gray-matter@2.1.1 › coffee-script@^1.12.4 CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
Recently updated (since 2018-08-10): 2 packages (detail see file /usr/local/lib/node_modules/vue-cli/node_modules/.recently_updates.txt)
Today:
→ download-git-repo@^1.0.1(1.1.0) (04:18:17)
2018-08-11
→ request@^2.67.0(2.88.0) (00:26:50)
All packages installed (252 packages installed from npm registry, used 5s(network 5s), speed 1.29MB/s, json 236(1.43MB), tarball 5.33MB)
[vue-cli@2.9.6] link /usr/local/bin/vue@ -> /usr/local/lib/node_modules/vue-cli/bin/vue
[vue-cli@2.9.6] link /usr/local/bin/vue-init@ -> /usr/local/lib/node_modules/vue-cli/bin/vue-init
[vue-cli@2.9.6] link /usr/local/bin/vue-list@ -> /usr/local/lib/node_modules/vue-cli/bin/vue-list
wendingding:my-vue wendingding$ vue init webpack my-project

? Project name my-vue
? Project description A Vue.js project
? Author flowerField <18681537032@163.com>
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests Yes
? Pick a test runner jest
? Setup e2e tests with Nightwatch? Yes
? Should we run `npm install` for you after the project has been created? (recom
mended) npm

vue-cli · Generated "my-project".


# Installing project dependencies ...
# ========================
...
^Cwendingding:my-vue wendingding$ cd my-project/
wendingding:my-project wendingding$ cnpm install
✔ Installed 58 packages
✔ Linked 0 latest versions
✔ Run 0 scripts
✔ All packages installed (used 42ms(network 39ms), speed 0B/s, json 0(0B), tarball 0B)
wendingding:my-project wendingding$ cnpm run dev

> my-vue@1.0.0 dev /Users/文顶顶/Desktop/V/my-vue/my-project
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

95% emitting b
DONE Compiled successfully in 3608ms 16:45:10

I Your application is running here: http://localhost:8080

主要命令

$ npm install -g cnpm --registry=https://registry.npm.taobao.org 全局安装cnmp
$ cnpm install --global vue-cli 使用cnmp来全局安装vue-cli
$ vue init webpack my-project 初始化项目
$ cd my-project/ 切换进入到项目子目录
$ cnpm install
$ cnpm run dev

上面命令执行完毕后,可以在浏览器中通过http://localhost:8080来访问项目页面。

Vue项目结构简单说明

下面列出Vue项目初始化完毕后,项目的目录结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
wendingding:my-project wendingding$ tree -L 2
.
├── README.md
├── build
│   ├── build.js
│   ├── check-versions.js
│   ├── logo.png
│   ├── utils.js
│   ├── vue-loader.conf.js
│   ├── webpack.base.conf.js
│   ├── webpack.dev.conf.js
│   └── webpack.prod.conf.js
├── config
│   ├── dev.env.js
│   ├── index.js
│   ├── prod.env.js
│   └── test.env.js
├── index.html
├── node_modules
│   ├── @babel
│   ├── @types
...
│   └── yauzl
├── package.json
├── src
│   ├── App.vue
│   ├── assets
│   ├── components
│   ├── main.js
│   └── router
├── static
└── test
├── e2e
└── unit

目录结构说明

src文件夹 开发目录
      assets用于存放图片
      components用于存放组件。
      App.vue是项目的入口文件。
      main.js是项目的核心文件。

static文件夹 静态资源目录。
test文件夹 初始的测试目录。
build文件夹 项目构建(webpack)相关的代码。
config文件夹 默认的配置目录,包括端口号等信息。
node_modules文件夹 npm 加载的项目依赖模块。
index.html 首页的入口文件。
package.json 项目的配置文件。
README.md 项目说明文档。

这里列出初始App.vue文件的内容(有调整)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<template>
<div id="app">
<img src="./assets/logo.png">
<h1>{{ msg }}</h1>
<router-view/>
</div>
</template>

<script>
export default {
name: 'App',
data () {
return {
msg: '文顶顶:Nice to meet u!'
}
}
}
</script>

<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

这里给出项目运行后对应的页面内容。