vue-cli3构建H5移动应用(vant+rem)

安装 cli3.x 版本

关于旧版本
Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。
如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过以下命令卸载它。

 npm uninstall vue-cli -g
 或
 yarn global remove vue-cli 

然后可以使用下列任一命令安装这个新的包:

npm install -g @vue/cli
或
yarn global add @vue/cli

拉取 2.x 模板 (旧版本)

Vue CLI >= 3 和旧版使用了相同的 vue 命令,所以 Vue CLI 2 (vue-cli) 被覆盖了。如果你仍然需要使用旧版本的 vue init 功能,你可以全局安装一个桥接工具:

npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack my-project

创建项目

vue create hello-world

你会被提示选取一个 preset。你可以选默认的包含了基本的 Babel + ESLint 设置的 preset,
如果选择默认选项 default,将会构建一个最基本的 vue 项目(没有 vue-router 也没有 vuex)
也可以选 Manually select features“手动选择特性”来选取需要的特性.
下面是手动配置选项(空格键是选中和取消)

11.png

这样就会创建一个包含 vue-router、vuex 和 postcss 的项目
勾选之后,使用回车键进入下一步

22.png

这里需要选择路由模式,yes 是 history 模式,no 是 hash 模式,一般选用yes
后面还需要选择 ESLint 的校验规则,格式化的时机,和各个插件的配置项的位置,不熟悉的话就选第一个

下面这个选择了 In package.json

33.png

最后选择是否将配置项保存为预设,然后配置完成,开始生成项目.
进入项目 、启动项目

npm run serve

以下是安装vantui部分,非此ui框架可以结束了

安装vant-ui

1.安装

# 安装 1.x 稳定版本
npm i vant -S

2.采用方式一 自动按需引入组件 (推荐)

# 安装插件
npm i babel-plugin-import -D

3.其后在babel.config.js 中配置

module.exports = {
  plugins: [
    ['import', {
      libraryName: 'vant',
      libraryDirectory: 'es',
      style: true
    }, 'vant']
  ]
};

4.接着你可以在代码中直接引入 Vant 组件

<template>
  <div class="about">
    <h1>This is an about page</h1>
    <van-button type="default">默认按钮</van-button>
    <van-button type="primary">主要按钮</van-button>
    <van-button type="info">信息按钮</van-button>
    <van-button type="warning">警告按钮</van-button>
    <van-button type="danger">危险按钮</van-button>
  </div>
</template>
<script>
  import {
    Button
  } from 'vant';
  export default {
    data() {
      return {
      }
    },
    components: {
      [Button.name]: Button,
    }
  }
</script>

Rem 适配

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具

1.下载lib-flexible

npm i lib-flexible --save

2.在main.js中引入lib-flexible

import 'lib-flexible/flexible'

3.安装 postcss-pxtorem

npm install postcss-pxtorem -D

4.在根目录下创建 vue.config.js配置postcss-pxtorem

module.exports = {
    ...
    ...
    css: {
        loaderOptions: {
            postcss: {
                plugins: [
                    require('postcss-pxtorem')({
                        rootValue: 37.5, // 换算的基数
                        selectorBlackList: ['weui', 'mu'], // 忽略转换正则匹配项
                        propList: ['*'],
                    }),
                ]
            }
        }
    },
}

配置完成后,即可在开发中直接使用 px 单位开发

Vue-cli3.x-自定义基础配置

在项目根目录创建 vue.config.js

module.exports = {
    publicPath:'/',//根路经  './'相对路径
    outputDir:'dist',//构建输出目录
    assetsDir:'assets',//静态资源目录(js,css,img,fonts)
    lintOnSave: false,//是否开启eslint保存监测,有效值:true  ||  false  ||  'error'
    devServer:{
        open:false, //项目运行起来自动打开浏览器
        host:'0.0.0.0',//可选值 'localhost'  ||  '127.0.0.1'  ||  '0.0.0.0'( 本机ip)
        port:8080,//端口号
        https:false,// http://127.0.0.1:8081/  与   https://127.0.0.1:8081/的区别
        hotOnly:false, //热更新
        proxy:{
            //配置跨域
            '/api':{
                target:'http://locallhost:5000/api/',
                ws:true,
                changOrigin:true,
                pathRewrite:{  //地址重写
                    '^/api':''
                }
            }
        }
    },
   //...
}

Vue-cli3.x-全局变量

规则:
*文件中必须以VUE_APP_开头
*通过process.env.XXX来使用
*通过.env配置环境变量
*通过.env[mode]区别开发和生产环境

区别:
.env.development =======>开发环境
.env.production =======>生产环境
.env=========> 在所有的环境中被载入

1.在项目根目录创建 .env 和 .env.development 和 .env.production 文件

image.png

2.在其文件页面中可自定义变量,如图

VUE_APP_TITLE='我是全局title变量'

3.在.vue文件中读取全局变量

    data() {
      return {
        title:process.env.VUE_APP_TITLE
      }
    },

安装HTTP 服务

主要用于访问Vue打包后的页面路径,如访问dist中的index.html页面

1.安装

npm install -g serve

2.查看serve版本

serve -v

3.启用服务,同时指定目录

serve -s dist/
红框中即是打包后的页面地址.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容