系列文章:
规划src目录
规划下src/
目录下的目录结构,修改如下
目录或文件 | 介绍 |
---|---|
src/api/ |
接口请求 |
src/assets/ |
静态资源 |
src/assets/img/ |
项目中用到的图片 |
src/assets/less/ |
less |
src/components/ |
组件 |
src/config/ |
项目配置 |
src/directives/ |
自定义指令 |
src/filters/ |
过滤器 |
src/icons/ |
图标 |
src/router/ |
路由 |
src/store/ |
状态管理 |
src/utils/ |
工具,公共方法 |
src/views/ |
页面级组件 |
src/app.vue |
主组件 |
src/main.js |
入口文件 |
添加常用目录别名
修改build/webpack.base.conf.js
文件
找到下面这段代码
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},
修改为
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'api': resolve('src/api'),
'assets': resolve('src/assets'),
'components': resolve('src/components'),
'config': resolve('src/config'),
'utils': resolve('src/utils'),
'views': resolve('src/views'),
}
},
修改主页
- 在
src/views/
目录下新建文件index.vue
<template>
<div>index</div>
</template>
- 修改
src/router/index.js
文件
import HelloWorld from '@/views/index'
- 删除文件
src/components/HelloWorld.vue
删除多余的文件和代码
- 修改
src/App.vue
文件
<template>
<div id="app">
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
- 删除
src/assets/logo.png
文件
修改路由
路由文件放置在src/router/index.js
文件中
-
新建文件
routes.js
文件,用来专门方式路由地址和组件的映射关系。
index.js
文件只用来保存路由插件配置相关 -
在
src/router/
目录下新建文件routes.js
// src/router/routes.js
const Index = res => require(['@/views/index'], res)
const routes = [
{
path: '/',
name: 'index',
component: Index
}
]
export default routes
- 修改
src/router/index.js
文件
import Vue from 'vue'
import Router from 'vue-router'
import routes from './routes'
Vue.use(Router)
export default new Router({
// mode: 'history',
routes
})
Eslint配置
在函数名和括号中间,我习惯不留空格,修改下Eslint
的配置文件
其他配置根据需求自己配置配置即可
- 修改
.eslintrc.js
文件,在rules
下添加代码
rules: {
// ...
'space-before-function-paren': 0
}
多环境配置
用vue-cli
生成的项目,只有开发环境development
和正式环境production
开发时常常会用到其他环境,比如线上测试环境、预发布环境等
现在我们将环境分为开发环境dev
、测试环境sit
和正式环境prod
- 修改
package.json
文件,修改scripts
下面的build
,拆分成两个
"scripts": {
// ...
"build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js"
},
- 在
config/
目录下添加文件sit.env.js
// config/sit.env.js
'use strict'
module.exports = {
NODE_ENV: '"production"',
ENV_CONFIG: '"sit"'
}
- 修改
config/prod.env.js
文件,添加ENV_CONFIG
配置
// config/prod.env.js
'use strict'
module.exports = {
NODE_ENV: '"production"',
ENV_CONFIG: '"prod"'
}
- 修改
build/build.js
文件
const spinner = ora('building for production...')
修改为
const spinner = ora('building for ' + process.env.env_config + ' production...')
- 修改
build/webpack.prod.conf.js
文件
const env = require('../config/prod.env')
修改为
const env = require('../config/' + process.env.env_config + '.env')
修改后就没有npm run build
这个命令了
- 打包测试环境:
npm run build:sit
- 打包正式环境:
npm run build:prod
备注:
运行命令是如果出现'cross-env' 不是内部或外部命令,也不是可运行的程序或批处理文件。
安装cross-env
:npm i cross-env --save-dev
发表评论