Vue2+VantUI移动端项目框架搭建

Vue2+VantUI移动端项目框架搭建

【准备】

装好vue和node环境

当前vue版本@vue/cli 5.0.8 npm@6.14.15 node v14.17.6

【步骤】

  1. 初始化项目

选择好项目根目录文件夹,在终端中用cd命令进入该目录,执行vue create 项目名称 ,下一步选择Manually select features,下一步勾选Router、VueX、CSS Pre-processors三项,下一步选择2.x,下一步输入n ,下一步选择Sass/SCSS (with dart-sass),下一步选择In dedicated config files,下一步输入n,然后等待项目初始化完毕。

  1. 安装依赖

执行cd 项目名称 进入项目目录,分别执行npm i lib-flexible 和 npm i postcss-pxtorem。

  1. 配置文件和代码修改

①用代码编辑器打开项目,在根目录新建vue.config.js,放入以下代码:

const path = require("path");

function resolve(dir) {

return path.join(__dirname, dir);

}

module.exports = { // commonJS规范

publicPath: './',

outputDir: 'dist', // 当运行 vue-cli-service build 时生成的生产环境构建文件的目录

assetsDir: 'static', // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录

indexPath: 'index.html', // 指定生成的 index.html 的输出路径 (相对于 outputDir)

filenameHashing: true, // 生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存

// 代理服务

devServer: {

open: false, // 项目构建成功之后,自动弹出页面

hot: true, // 模块热更新

// host: '192.168.31.142', // 设置当前服务器地址

port: 9090, // 设置端口号

proxy: { // 开发环境下将 API 请求代理到 API 服务器

'/api': {

target: 'http://192.168.15.248:80/gbbjgl',

// ws: false,

changeOrigin: true,

pathRewrite: {

'^/api/': '/'

}

}

}

},

// 设置别名

chainWebpack: (config) => {

config.resolve.alias

.set("@", resolve("src"))

.set("@assets", resolve("src/assets"))

.set("@components", resolve("src/components"))

.set("@network", resolve("src/network"))

.set("@router", resolve("src/router"))

.set("@store", resolve("src/store"))

.set("@views", resolve("src/views"));

},

// 移动端适配

css: {

loaderOptions: {

postcss: {

postcssOptions: {

plugins: [

require("autoprefixer")({

// 配置使用 autoprefixer

overrideBrowserslist: ["last 15 versions"],

}),

// 配置postcss-pxtorem

require('postcss-pxtorem')({

// 换算的基数

rootValue: 37.5,

// 忽略转换正则匹配项。插件会转化所有的样式的px。

// 比如引入了三方UI,也会被转化。目前我使用 selectorBlackList字段,来过滤

// 如果个别地方不想转化px。可以简单的使用大写的 PX 或 Px 。

selectorBlackList: [".van"],

propList: ['*']

})

]

}

}

}

}

}

②找到public/index.html,用

<meta name="viewport"

content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />

替代

<meta name="viewport" content="width=device-width,initial-scale=1.0">

③在src/assets目录下新建文件夹css,在css中创建文件reset.css,放入以下代码:

* {

margin: 0;

padding: 0;

}

html {

width: 100%;

height: 100%;

/* font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; */

}

body {

width: 100%;

height: 100vh;

box-sizing: border-box;

}

ol, ul {

list-style: none;

}

img {

border: 0;

}

a {

color: #707070;

text-decoration: none;

}

a, input, button, select, textarea {

outline: none;

}

④在main.js引入:

// 移动端适配库

import 'lib-flexible/flexible';

// 浏览器重置样式

import '@/assets/css/reset.css';

⑤在App.vue中删除<style>标签中原有的css,放入以下:

#app {

overflow-x: hidden;

overflow-y: auto;

width: 375px;

height: 100%;

margin: 0 auto;

font-size: 16px;

text-align: left;

color: #303133;

background-color: #f9fafb;

font-family: Avenir, Helvetica, Arial, sans-serif;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

box-sizing: border-box;

}

  1. 启动项目

在终端执行npm run serve