# mindDrug
**Repository Path**: themepark/mind-drug
## Basic Information
- **Project Name**: mindDrug
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-03
- **Last Updated**: 2026-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# lbx-vue
基于 vue-cli4.0 + webpack 4 + vant ui + sass+ rem 适配方案+axios 封装,构建移动端工程化开发模板
### 目录
[Vue-cli4 移动端开发框架工程化环境]
* [Eslint+Pettier 统一代码规范,强校验与修复]
* [配置多环境变量]
* [rem 适配方案 + viewPort]
* [bassCSS + Scss 全局样式]
* [actionClass + UI标准要素]
* [VantUI 组件按需加载]
* [Vuex 状态管理]
* [Vue-router]
* [Axios 封装及接口管理]
* [配置 alias 别名]
* [配置 proxy 跨域]
* [条件编译日志console.log]
* [按需引入]
* [模块懒加载]
* [添加 IE 兼容]
* [添加 jsonp]
* [添加 md5]
* [添加 图片懒加载]
### 启动项目
```bash
cd lbx-vue
npm install
npm run serve
```
`package.json` 里的 `scripts` 配置 `serve` `stage` `build`,通过 `--mode xxx` 来执行不同环境
- 通过 `npm run serve` 启动本地 , 执行 `development`
- 通过 `npm run stage` 打包测试 , 执行 `staging`
- 通过 `npm run build` 打包正式 , 执行 `production`
```javascript
"scripts": {
"serve": "vue-cli-service serve --open",
"stage": "vue-cli-service build --mode staging",
"build": "vue-cli-service build",
}
```
### 配置环境
`VUE_APP_` 开头的变量,在代码中可以通过 `process.env.VUE_APP_` 访问。
`VUE_APP_ENV = 'development'` 通过`process.env.VUE_APP_ENV` 访问。
`VUE_APP_*` 变量之外,在你的应用代码中始终可用的还有两个特殊的变量`NODE_ENV` 和`BASE_URL`
在项目根目录中新建`.env.*`
- .env.development 本地开发环境配置
```bash
NODE_ENV='development'
# must start with VUE_APP_
VUE_APP_ENV = 'development'
```
- .env.staging 测试环境配置
```bash
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'staging'
```
- .env.production 正式环境配置
```bash
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'production'
```
只定义了基础的 VUE_APP_ENV `development` `staging` `production`
变量统一在 `src/config/env.*.js` 里进行管理。
config/index.js
```javascript
// 根据环境引入不同配置 process.env.NODE_ENV
const config = require('./env.' + process.env.VUE_APP_ENV)
module.exports = config
```
配置对应环境的变量,拿本地环境文件 `env.development.js` 举例,用户可以根据需求修改
```javascript
// 本地环境配置
module.exports = {
title: 'vue',
baseUrl: 'http://localhost:9020', // 项目地址
baseApi: 'https://test.xxx.com/api', // 本地api请求地址
APPID: 'xxx',
APPSECRET: 'xxx'
}
```
环境不同,变量就会不同
```javascript
// 根据环境不同引入不同baseApi地址
import { baseApi } from '@/config'
console.log(baseApi)
```
### rem 适配方案
Vant 中的样式默认使用`px`作为单位,如果需要使用`rem`单位,使用以下两个工具:
- [postcss-pxtorem](https://github.com/cuth/postcss-pxtorem) 是一款 `postcss` 插件,用于将单位转化为 `rem`
- [lib-flexible](https://github.com/amfe/lib-flexible) 用于设置 `rem` 基准值
##### PostCSS 配置
下面提供了一份基本的 `postcss` 配置,可以在此配置的基础上根据项目需求进行修改
```javascript
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
plugins: {
autoprefixer: {
overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
},
'postcss-pxtorem': {
rootValue: 37.5,
propList: ['*']
}
}
}
```
```html
```
**viewport,可以用布局宽高强关联,或者等比缩放视图**
```html
```
### bassCSS Sass 全局样式
```css
html,
body .app {
color: #333333;
font-family: Arial, Helvetica, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif;
background-color: $background-color;
}
```
每个页面自己对应的样式都写在自己的 .vue 文件之中 `scoped` 它顾名思义给 css 加了一个域的概念。
```html
```
#### 目录结构
lbx-vue 所有全局样式都在 `@/src/assets/css` 目录下设置
```bash
├── assets
│ ├── css
│ │ ├── index.scss # 全局通用样式
│ │ ├── m_util.scss # actionScss
│ │ ├── mixin.scss # 全局mixin
│ │ └── variables.scss # 全局变量
```
#### 修改当前页面的vant-ui 样式
现在我们来说说怎么重写 `vant-ui` 样式。由于 `vant-ui` 的样式我们是在全局引入的,所以你想在某个页面里面覆盖它的样式就不能
加 `scoped`,但你又想只覆盖这个页面的 `vant` 样式,你就可在它的父级加一个 `class`,用命名空间来解决问题。
#### 全局变量
`vue.config.js` 配置使用 `css.loaderOptions` 选项,注入 `sass` 的 `mixin` `variables` 到全局,不需要手动引入 ,配
置`$cdn`通过变量形式引入 cdn 地址,这样向所有 Sass/Less 样式传入共享的全局变量:
```javascript
const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)
const defaultSettings = require('./src/config/index.js')
module.exports = {
css: {
extract: IS_PROD,
sourceMap: false,
loaderOptions: {
// 给 scss-loader 传递选项
scss: {
// 注入 `sass` 的 `mixin` `variables` 到全局, $cdn可以配置图片cdn
// 详情: https://cli.vuejs.org/guide/css.html#passing-options-to-pre-processor-loaders
prependData: `
@import "assets/css/mixin.scss";
@import "assets/css/variables.scss";
$cdn: "${defaultSettings.$cdn}";
`
}
}
}
}
```
设置 js 中可以访问 `$cdn`,`.vue` 文件中使用`this.$cdn`访问
```javascript
// 引入全局样式
import '@/assets/css/index.scss'
// 设置 js中可以访问 $cdn
// 引入cdn
import { $cdn } from '@/config'
Vue.prototype.$cdn = $cdn
```
在 css 和 js 使用
```html
```
### actionClass + UI标准要素
**m_utl.scss是一个用来操作dom的css样式类文件,现代的移动端h5开发样式少,操作大体一致,
使用css常用样式封装的样式类文件进行动态绘制,高效快捷。**
**和UI约定UI标准要素,将mg/pd/font等等标准化**
**组件样式套件封装则按功能命名**
```html