vue相关配置文件详解及多环境配置详细步骤


Posted in Javascript onMay 19, 2020

1.package.json

作用:
package.json 文件其实就是对项目或者模块包的描述,里面包含许多元信息。比如项目名称,项目版本,项目执行入口文件,项目贡献者等等。npm install 命令会根据这个文件下载所有依赖模块。

文件结构如下:

{
 "name": "sop-vue",
 "version": "0.1.0",
 "author": "zhangsan <zhangsan@163.com>",
 "description": "sop-vue",
 "keywords":["node.js","javascript"],
 "private": true,
 "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
 "contributors":[{"name":"李四","email":"lisi@example.com"}],
 "repository": {
      "type": "git",
      "url": "https://path/to/url"
   },
 "homepage": "http://github.com/style.css",
 "license":"MIT",
 "dependencies": {
 "bd-font-icons": "^1.1.3",
 "core-js": "^3.6.4",
 "echarts": "^4.7.0",
 "element-ui": "^2.13.1",
 "v-charts": "^1.19.0",
 "vue": "^2.6.11",
 "vue-router": "^3.1.6",
 "vuex": "^3.1.3"
},
 "devDependencies": {
 "@vue/cli-plugin-babel": "^4.3.0",
 "@vue/cli-plugin-eslint": "^4.3.0",
 "@vue/cli-plugin-router": "^4.3.0",
 "@vue/cli-plugin-unit-mocha": "^4.3.0",
 "@vue/cli-plugin-vuex": "^4.3.0",
 "@vue/cli-service": "^4.3.0",
 "@vue/test-utils": "1.0.0-beta.31",
 "babel-core": "^6.26.3",
 "babel-eslint": "^10.1.0",
 "babel-loader": "^7.1.5",
 "babel-preset-env": "^1.7.0",
 "chai": "^4.1.2",
 "eslint": "^6.7.2",
 "eslint-plugin-vue": "^6.2.2",
 "sass": "^1.26.3",
 "sass-loader": "^8.0.2",
 "vue-template-compiler": "^2.6.11"
}
 "scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"lint": "vue-cli-service lint"
 },
 "bin": {
 "webpack": "./bin/webpack.js"
 },
 "main": "lib/webpack.js",
 "module": "es/index.js",
 "eslintConfig": {
 "extends": "vue-app"
 },
 "engines" : {
 "node" : ">=0.10.3 <0.12"
 },
 "browserslist": {
 "production": [
 ">0.2%",
 "not dead",
 "not op_mini all"
 ],
 "development": [
 "last 1 chrome version",
 "last 1 firefox version",
 "last 1 safari version"
 ]
 },
 "style": [
 "./node_modules/tipso/src/tipso.css"
],
 "files": [
 "lib/",
 "bin/",
 "buildin/",
 "declarations/",
 "hot/",
 "web_modules/",
 "schemas/",
 "SECURITY.md"
 ]
}

 文件参数说明: 

vue相关配置文件详解及多环境配置详细步骤

这个文件保存着项目的时候配置的项目基本信息,它是个标准的json格式文件,编写时要注意格式,重点要关注一下scripts里面的内容,这里面包含了项目的一些指令简写,在这里可以配置启动不同环境的项目的指令。

2.vue.config.js

vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。

这个文件应该导出一个包含了选项的对象:

// vue.config.js
{
 // 选项...
}

vue相关配置文件详解及多环境配置详细步骤

vue相关配置文件详解及多环境配置详细步骤

下面是个比较完整点的配置实例

// Vue.config.js 配置选项
module.exports = {
 // 选项
 // 基本路径
 publicPath: "./",
 // 构建时的输出目录
 outputDir: "dist",
 // 放置静态资源的目录
 assetsDir: "static",
 // html 的输出路径
 indexPath: "index.html",
 //文件名哈希
 filenameHashing: true,
 //用于多页配置,默认是 undefined
 pages: {
 index: {
  // page 的入口文件
  entry: 'src/index/main.js',
  // 模板文件
  template: 'public/index.html',
  // 在 dist/index.html 的输出文件
  filename: 'index.html',
  // 当使用页面 title 选项时,
  // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
  title: 'Index Page',
  // 在这个页面中包含的块,默认情况下会包含
  // 提取出来的通用 chunk 和 vendor chunk。
  chunks: ['chunk-vendors', 'chunk-common', 'index']
 },
 // 当使用只有入口的字符串格式时,
 // 模板文件默认是 `public/subpage.html`
 // 如果不存在,就回退到 `public/index.html`。
 // 输出文件默认是 `subpage.html`。
 subpage: 'src/subpage/main.js'
 },
 // 是否在保存的时候使用 `eslint-loader` 进行检查。
 lintOnSave: true,
 // 是否使用带有浏览器内编译器的完整构建版本
 runtimeCompiler: false,
 // babel-loader 默认会跳过 node_modules 依赖。
 transpileDependencies: [ /* string or regex */ ],
 // 是否为生产环境构建生成 source map?
 productionSourceMap: true,
 // 设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性。
 crossorigin: "",
 // 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)。
 integrity: false,
 // 调整内部的 webpack 配置
 configureWebpack: () => {}, //(Object | Function)
 chainWebpack: () => {},
 // 配置 webpack-dev-server 行为。
 devServer: {
 open: process.platform === 'darwin',
 host: '0.0.0.0',
 port: 8080,
 https: false,
 hotOnly: false,
 // 查阅 https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli/cli-service.md#配置代理
 proxy: {
  '/api': {
  target: "http://app.rmsdmedia.com",
  changeOrigin: true,
  secure: false,
  pathRewrite: {
   "^/api": ""
  }
  },
  '/foo': {
  target: '<other_url>'
  }
 }, // string | Object
 before: app => {}
 },
 // CSS 相关选项
 css: {
 // 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)
 // 也可以是一个传递给 `extract-text-webpack-plugin` 的选项对象
 extract: true,
 // 是否开启 CSS source map?
 sourceMap: false,
 // 为预处理器的 loader 传递自定义选项。比如传递给
 // Css-loader 时,使用 `{ Css: { ... } }`。
 loaderOptions: {
  css: {
  // 这里的选项会传递给 css-loader
  },
  postcss: {
  // 这里的选项会传递给 postcss-loader
  }
 },
 // 为所有的 CSS 及其预处理文件开启 CSS Modules。
 // 这个选项不会影响 `*.vue` 文件。
 modules: false
 },
 // 在生产环境下为 Babel 和 TypeScript 使用 `thread-loader`
 // 在多核机器下会默认开启。
 parallel: require('os').cpus().length > 1,
 // PWA 插件的选项。
 // 查阅 https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli-plugin-pwa/README.md
 pwa: {},
 // 三方插件的选项
 pluginOptions: {
 // ...
 }
}

3.多环境配置

日常项目中我们可能有多个环境,常见的开发、测试和生产,它们的接口地址和执行操作也是不一样的,所以我们需要配置不同的环境,就拿基本的开发、测试、生产三个环境来说。
首先在根目录下新建.env.dev、.env.test、.env.prod文件(开发、测试、生产)

vue相关配置文件详解及多环境配置详细步骤

文件内容:

vue相关配置文件详解及多环境配置详细步骤

例如:

vue相关配置文件详解及多环境配置详细步骤vue相关配置文件详解及多环境配置详细步骤
vue相关配置文件详解及多环境配置详细步骤

在main.js中配置接口地址指向配置文件的地址

vue相关配置文件详解及多环境配置详细步骤

修改package.json文件中scripts中编译指令即可进行不同环境的配置,?mode后面指向不同的配置文件.env.dev、.env.test、.env.prod
vue相关配置文件详解及多环境配置详细步骤
运行npm run dev即可访问开发环境接口
vue相关配置文件详解及多环境配置详细步骤

运行npm run test即可使用测试环境接口
vue相关配置文件详解及多环境配置详细步骤
运行npm run prod即可访问生产环境接口
vue相关配置文件详解及多环境配置详细步骤

Vue.config.js中可以在configureWebpack中去根据不同环境修改相应的一些配置
例如:

configureWebpack: (config) => {
 if (process.env. VUE_APP_MODE === 'prod') {
 // 为生产环境修改配置...
 }else if(process.env. VUE_APP_MODE === 'test'){
 // 为测试环境修改配置...
 }else {
 // 为开发环境修改配置...
 }
 Object.assign(config, {
 // 开发、测试、生产共同配置
 resolve: {
  alias: {
  '@': path.resolve(__dirname, './src'),
  '@c': path.resolve(__dirname, './src/components'),
  '@p': path.resolve(__dirname, './src/pages')
  } // 别名配置
 }
 })
},

打包同理

"build:dev": "vue-cli-service build --mode dev",
"build:test": "vue-cli-service build --mode test",
"build:prod": "vue-cli-service build --mode prod"

运行npm run build:dev即可构建开发环境
运行npm run build:test即可构建测试环境
运行npm run build:prod即可构建生产环境

vue相关配置文件详解及多环境配置详细步骤

总结

到此这篇关于vue相关配置文件详解及多环境配置详细步骤的文章就介绍到这了,更多相关vue 配置文件多环境配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
js实现日历的简单算法
Jan 24 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
在vue项目中封装echarts的步骤
Dec 25 Vue.js
原生JavaScript实现轮播图
Jan 10 Javascript
JS使用for in有序获取对象数据
May 19 #Javascript
基于js实现数组相邻元素上移下移
May 19 #Javascript
Node.js API详解之 zlib模块用法分析
May 19 #Javascript
微信jssdk踩坑之签名错误invalid signature
May 19 #Javascript
JavaScript实现简单的弹窗效果
May 19 #Javascript
js实现自定义右键菜单
May 18 #Javascript
微信小程序手动添加收货地址省市区联动
May 18 #Javascript
You might like
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Js面试算法详解
2018/04/08 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python实现趣味图片字符化
2019/04/30 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
进程的查看和调度分别使用什么命令
2013/12/14 面试题
新员工培训个人的自我评价
2013/10/09 职场文书
11月红领巾广播稿
2014/01/17 职场文书
驾驶员培训方案
2014/05/01 职场文书
公证委托书格式
2014/09/13 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏