惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Y
Y Combinator Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
D
Docker
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
B
Blog
Vercel News
Vercel News
Recent Announcements
Recent Announcements
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
宝玉的分享
宝玉的分享

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
Vue + Webpack 开发
微信公众号 · 2017-07-13 · via 陈少文的网站

Please enable Javascript to view the contents

1,初始化项目

vue-cli 是Vue官方发布的项目脚手架,使用 vue-cli 可以快速创建 Vue + Webpack项目。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
npm install -g vue-cli
# 全局安装vue-cli
vue init webpack myproject
# 创建vue项目,执行时,会提示输入项目的相关信息
cd myproject
# 进入项目
npm install
# 安装依赖包,新建node_modules文件夹,依赖包安装在此
npm run dev
# 本地运行,默认在http://localhost:8080,启动服务

2,目录结构说明

 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
|--build  //webpack相关代码文件夹
|  |--build.js //生产环境结构代码
|  |--check-version.js //检查node、npm等版本
|  |--dev-client.js  //热加载相关代码
|  |--dev-server.js  //本地服务器
|  |--utils.js  //构建工具
|  |--vue-loader.conf.js  //vue加载器
|  |--webpack.base.conf.js //webpack基本配置
|  |--webpack.dev.conf.js //webpack开发环境配置
|  |--webpack.test.conf.js //webpack测试环境配置
|  |--webpack.prod.conf.js  //webpack生产环境配置
|--config  //项目开发环境配置
|  |--index.js  //项目基本配置
|  |--dev.env.js  //开发环境变量
|  |--test.env.js  //测试环境变量
|  |--prod.env.js  //生产环境变量
|--src  //项目源代码目录
|  |--assets //资源目录
|  |--components  //组件目录
|  |--router //路由目录
|  |--APP.vue  //页面入口文件
|  |--main.js  //程序入口文件,加载各种公共组件
|--static  //静态文件目录,比如:css、图片等静态文件
|--index.html  //入口文件
|--test  //单元测试文件目录
|--package.json  //项目基本信息
|--README.md   //项目说明

3,新增一个页面

下面以增加一个页面为例,说明开发流程。

3.1,增加页面模板

在src/compoents目录下,新建文件Home.vue作为/home 路由的显示页面。

Home.Vue

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<template>
  <div class="home">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        msg: "I am Home Page",
      };
    },
  };
</script>

<style scoped>
  h1,
  h2 {
    font-weight: normal;
  }
</style>

渲染页面模板,主要分为三个部分:

  • template。HTMLDom结构,页面显示的内容。
  • script。Vue的逻辑代码,前端js。
  • style。样式内容,scoped表示仅在本模板生效。

3.2,增加页面路由

在src/router目录下,index.js中新增如下内容。

index.js新增

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import Home from "@/components/Home";

export default new Router({
  routes: [
    {
      path: "/home",
      name: "home",
      component: Home,
    },
  ],
});

这样 http://localhost:8080/#/home ,就路由到了Home.vue页面了。需要注意的是,这里的路由是从#后面开始的。

4,打包编译

在项目目录下,利用npm,执行build即可完成生产环节的打包编译。

1
2
cd myproject
npm run build

打包生成的文件输出路径,在config/index.js的assetsRoot、assetsSubDirectory参数中指定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
dist
|-- index.html
`-- static
    |-- css
    |   |-- app.css # 样式
    |   `-- app.css.map
    `-- js
        |-- app.js # 主要是vue模板编译后的内容
        |-- app.js.map
        |-- manifest.js  #在vendor的基础上,再抽取出要经常变动的部分,比如关于异步加载js模块部分的内容
        |-- manifest.js.map
        |-- vendor.js # 通过提取公共模块插件来提取的代码块(webpack本身带的模块化代码部分)
        `-- vendor.js.map

关于map文件:在开启了控制台(F12)的时候,才会加载.map文件。通常生产环境的js和css代码,经过压缩,一个文件可能只有几行代码,但是每行却有几千字符。这样非常不利于代码调试,map文件就是用来调试代码,定位代码行的。


微信公众号