Skip to content

2. 搭建开发环境

我们采用文档[2]中详细描述的开发环境:

  • 使用 Visual Studio Code (VSCode) 编写 JavaScript 代码;
  • [node.js] 用于运行代码;
  • 使用 [npm] 下载并安装所需的 JavaScript 库;

我们在 [VSCode] 中创建一个工作环境:

Image

  • [1-5] 中,我们在 [VSCode] 中打开一个空的 [vuejs] 文件夹;

Image

  • [8-10] 中,我们安装 [@vue/cli] 依赖项,这将使我们能够初始化一个 [Vue.js] 项目。该依赖项包含大量包(数百个);

在同一终端中,接着输入命令 [vue create .],这将在当前目录 (.) 中创建一个 [Vue.js] 项目:

Image

  • [13] 中,将出现一系列问题以配置项目;

Image

  • 回答完所有问题后,系统将下载新包,并在当前目录中生成一个项目 [14]

让我们来看看生成了什么。[package.json] 文件内容如下:


{
  "name": "vuejs",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve vuejs-20/main.js",
    "build": "vue-cli-service build vuejs-20/main.js",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "axios": "^0.19.0",
    "bootstrap": "^4.3.1",
    "bootstrap-vue": "^2.0.2",
    "core-js": "^2.6.5",
    "vue": "^2.6.10",
    "vue-router": "^3.1.3",
    "vuex": "^3.1.1"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.11.0",
    "@vue/cli-plugin-eslint": "^3.11.0",
    "@vue/cli-service": "^3.11.0",
    "babel-eslint": "^10.0.1",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.0.0",
    "vue-template-compiler": "^2.6.10"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

评论

  • 第 14–22 行:在开发所需的依赖项中,我们可以看到前两章中已经用过的两个工具 [eslint, babel]。此外,还添加了这两个工具的插件,用于在 [vue.js] 中使用;
  • 第 34 行:[babel-eslint] 包将负责 JavaScript 代码的 ES6 到 ES5 转译;
  • 第 5–9 行:已创建三个 [npm] 任务:
    • [build]:用于构建项目已编译版本,以备生产环境使用;
    • [serve]:在 Web 服务器上运行项目。该工具用于开发过程中的测试。与 [webpack-dev-server] 类似,修改项目源代码会自动触发 Web 服务器对项目的重新编译和重新加载;
    • [lint]:用于分析 JavaScript 代码并生成报告。本文中我们将不使用此工具;

已生成一个 [README.md] 文件,内容如下:


# vuejs
 
## Project setup
```
npm install
```
 
### Compiles and hot-reloads for development
```
npm run serve
```
 
### Compiles and minifies for production
```
npm run build
```
 
### Run your tests
```
npm run test
```
 
### Lints and fixes files
```
npm run lint
```
 
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

本文件总结了用于管理项目的命令。

我们知道在 [VSCode] 中,可以执行 [npm] 任务:

Image

  • [1-3] 中,我们执行 [serve] 命令,该命令将编译并运行该项目 [4-5]

访问 URL [http://localhost:8080] 时,我们会看到以下页面:

Image

稍后我们将解释导致出现此页面的原因。

让我们继续配置工作环境:

Image

  • 在上文的 [2] 中,我们可以看到 [git] 标记。[git] 是一个源代码版本控制系统,它允许您管理代码的各个版本,并在开发人员之间共享。我们将为该项目禁用此工具;
  • [3-5]处,我们进入项目属性;

Image

  • [9-10] 中,我们禁用该项目中 [git] 的使用;

我们将编写各种测试来演示 [vue.js] 的工作原理。但是,我们不想每次都创建一个新项目,因为这需要每次都生成一个 [node_modules] 文件夹,而该文件夹的大小达数百兆字节。让我们重新审视 [package.json] 文件中的 [npm] 任务:


  "scripts": {
    "serve": "vue-cli-service serve vuejs-00/main.js",
    "build": "vue-cli-service build vuejs-00/main.js",
    "lint": "vue-cli-service lint"
  },
  • 第 2 行:[serve] 命令默认使用:
    • 文件 [public/index.html]
    • 关联文件 [src/main.js]

在第 2 行,您可以为 [serve] 命令指定项目的入口点,例如:


"serve": "vue-cli-service serve vuejs-00/main.js",

让我们试一试:

Image

  • [1] 中,[src] 文件夹已重命名为 [vuejs-00]
  • [2-3] 中,修改了 [serve] 命令;
  • [4-6] 中,我们运行了该项目;

我们得到了与之前相同的结果:

Image

为了进行测试,我们将按以下步骤操作:

  • 在项目内的 [vuejs-xx] 文件夹中编写代码;
  • [package.json] 文件中使用命令 [vue-cli-service serve vuejs-xx/main.js] 测试该项目;

当开发服务器正在运行时,对任何项目文件的修改都会触发重新编译。因此,我们在 [VSCode] 中禁用了 [自动保存] 模式。事实上,我们并不希望每次在项目文件中输入字符时都触发重新编译。我们只希望在特定情况下进行重新编译:

Image

  • [2] 中,[自动保存] 选项必须保持未勾选状态;