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 相关文章推荐
Javascript/Jquery——简单定时器的多种实现方法
Jul 03 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 Javascript
JavaScript获取页面中表单(form)数量的方法
Apr 03 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
深入学习js瀑布流布局
Oct 14 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
node.js中实现kindEditor图片上传功能的方法教程
Apr 26 Javascript
js自定义瀑布流布局插件
May 16 Javascript
javascript算法之二叉搜索树的示例代码
Sep 12 Javascript
详解使用路由延迟加载 Angular 模块
Oct 12 Javascript
在vue中使用Base64转码的案例
Aug 07 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代码
2012/09/14 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
PHP内核探索之变量
2015/12/22 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
JavaScript修改注册表实例代码
2020/01/05 Javascript
Python 连连看连接算法
2008/11/22 Python
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python去掉字符串中重复字符的方法
2014/02/27 Python
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
咖啡店创业计划书范文
2014/09/15 职场文书
人事代理委托书
2014/09/27 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
ktv服务员岗位职责
2015/02/09 职场文书