小程序选定了mpvue作为开发框架,搭建开发环境和构建环境。自从用了Travis和Jenkins之后,再也回不到手工构建的时代了。

目的-自动构建

web项目中,自从前后台分离的结构形成,就形成了一个要求,前后台的连接URL需要根据部署环境进行切换,线上的URL和测试的URL肯定不同;这点类似于java应用连接数据库的连接切换。

后台URL的定义要能够多环境构建是自动构建的目标。

构建简介

mpvue的框架基于vue.js构建,利用webpack的扩展工具将vue源码转换为小程序的源码。vue的源码是基于node构建的,理论将node构建生态的env模式也能带入mpvue构建过程。

process.env是nodejs提供的官方api。官方定义是:process.env属性返回一个包含用户环境信息的对象。

process.env

process.env.NODE_ENV是默认的全局定义的全局变量.process.env是一个定义对象,可以自定义扩展。

比如:

``` javascript
process.env = {
NODE_ENV : 'dev',
api : 'http://example.com'
}
``` 这样子就实现了自定义的过程,将定义分别放到env.dev.js,env.prod.js,env.test.js即可实现多环境实践。

mpvue中使用

mpvue的quickStart提供的构建脚手架,env的定义在config目录中,通过prod.env.js和dev.env.js实现对env的定义。

``` js prod.env.js
module.exports = {
NODE_ENV: '"production"',
api: '"example.com"'
}
```

如何使用呢?

因为process是一个node的全局变量,使用Process对象在vue源码中应该是任意使用的。测试下:

    // App.vue
<script>
export default {
created () {
// 调用API从本地缓存中获取数据
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
console.log('app created and cache logs by setStorageSync')
}
}
</script>
//pages/index/index.vue
<script>
export default {
methods: {
clickHandle (msg, ev) {
console.log(process.env)
console.log('clickHandle:', msg, ev)
}
}
}
</script>

启动构建工具,打开微信开发工具,可以正确输出定义结果,目标达成。

MPVUE多环境定义后台URL的更多相关文章

  1. C语言定义从URL中获取键值的接口

    环境:centos7下,对客户端http请求进行解析,来获取有效键值(包括汉字). 头文件 /* 这是一份关于从Http请求信息中提取键值的接口声明的头文件 */ #ifndef _HEAD_H_ # ...

  2. Django - 环境搭建、url、视图、模板、标签、过滤器

    (一).简介 简介就不多说了,网上的内容一大堆.总结来说,django是走大而全的路线,写项目超级快,几乎什么都为你考虑到了,你就乖乖照着它的格式来写就行了. 这里来一些基本认知: web应用框架(w ...

  3. CI在nginx环境下去掉url中的index.php

    在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...

  4. iOS开发-自己定义后台显示图片(iOS7-Background Fetch的应用)

    之前在用电池医生的时候, 发现它有这样一个功能:当应用进入后台的时候, 会显示另外一张图片覆盖App Switcher显示的界面. 效果例如以下: 变成----> 而这种一个功能, 对于保护用户 ...

  5. XMAL定义后台数据

    头部调用程序集xmlns:sys="clr-namespace:System;assembly=mscorlib" <Window.Resources><!--定 ...

  6. django 定义文章url

    url(r'^firstcontent/'+str(date)+'/(?P<first_body_id>\d+)/$', views.firstcontent, name='firstco ...

  7. djago 定义后台地址

    在app 中urls.py 可替换原始后台登陆地址  /admin   为自定义地址

  8. dede5.7 GBK 在php5.4环境下 后台编辑器无法显示文章内容

    问题的原因是:是htmlspecialchars,PHP 5.4后GBK编码下默认不支持中文,转换后内容为空,UTF-8编码没有任何问题.   解决方法如下: 在\include\ckeditor\c ...

  9. URLSearchParams 接口定义处理 URL 参数串

    基本使用方法如下 /* * URLSearchParams属性 * @语法:new URLSearchParams(parameter); */ (function(){ var str = &quo ...

随机推荐

  1. 批量删除Redis中的数据

    测试环境上是docker安装的redis,生产上使用的是阿里云Redis服务,需要批量清理生产上的数据. 阿里云提供了BS结构的工具管理Redis,但是不能全选批量删除,只能脚本删除,方法是在测试环境 ...

  2. Mysql索引详解及优化(key和index区别)

    MySQL索引的概念    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库 ...

  3. [JSOI2018]潜入行动

    题目 我好菜啊,嘤嘤嘤 原来本地访问数组负下标不会报\(RE\)或者\(WA\),甚至能跑出正解啊 这道题还是非常呆的 我们发现\(k\)很小,于是断定这是一个树上背包 发现在一个点上安装控制器并不能 ...

  4. python伪装网页访问

    # -*- coding:utf8 -*-#import urllib.request#url =' http://www.douban.com/'#webPage=urllib.request.ur ...

  5. Java和Python安装和编译器使用

    java 一.安装jdk时第二次选择安装目录时,这是在安装jre,可以直接取消. 二.配置三个环境变量(在WIN7下) 右键我的电脑>属性>高级系统设置>环境变量>系统变量. ...

  6. 节点和Topic通信

    1.简介 对于实时性. 周期性的消息, 使用topic来传输是最佳的选择. topic是一种点对点的单向通信方式, 这里的“点”指的是node, 也就是说node之间可以通过topic方式来传递信息. ...

  7. linux文件系统初始化过程(1)---概述

    术语表: struct task:进程 struct mnt_namespace:命名空间 struct mount:挂载点 struct vfsmount:挂载项 struct file:文件 st ...

  8. Kafka集群配置

    kafka_2.11-0.9.0.1.tgz 1.进入项目前的目录 cd /home/dongshanxia mkdir kafka #创建项目目录 cd kafka #进入项目目录 mkdir ka ...

  9. Oracle ora-12514监听程序当前无法识别连接描述中请求的错误

    昨天刚安装好oracle数据库,还可以登录,到今天,登录时就发出了这样的错误 到网上找了半天,上面都是说监听器服务的问题,但是试过后依旧不行.最后重启了一次,就解决了异常 原来是oracle中一个服务 ...

  10. 数据结构与算法之二叉树 ——in dart

    用dart语言实现的二叉树,实现了插入.查找.删除,中序遍历.前序.后序遍历等功能. class BinaryTree<E extends Comparable> { Node<E& ...