vue-cli常用设置总结


Posted in Javascript onFebruary 24, 2018

基于vue-cli做了好几个项目了,想把一些自己的常用设置写出来,磨了好久,一看vue-cli3.0都快出来了,不能再磨了。。

路径相关

css内引用的资源

build -> utils.js
 // generate loader string to be used with extract text plugin
 function generateLoaders (loader, loaderOptions) {
  //less
  // Extract CSS when that option is specified
  // (which is the case during production build)
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    publicPath: '../../', //注意: 此处根据路径, 自动更改
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

本地访问

config -> index.js
module.exports = {
 build: {
  //less
  //assetsPublicPath: '/',
  assetsPublicPath: './',
  //less
 },
 //less
}

调试相关

内网访问

config -> index.js

module.exports = {
 //less
 dev: {
  //less
  port: process.env.PORT || 8080,//可改端口
  host:'192.168.0.105',//不是8080端口可能需要指定host为本机IP
 }
}

跨域代理

config -> index.js
module.exports = {
 //less
 dev: {
  //less
  proxyTable: {
   '/AppHome': {
    target: 'http://192.168.0.211:2334',//接口域名
    changeOrigin: true,//是否跨域
    pathRewrite: {
     '^/AppHome': '/AppHome'//需要rewrite重写
    }
   }
  },
 }
}
config -> dev.env.js
module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 API_HOST: '"AppHome/"' 
})
config -> prod.env.js
module.exports = {
 NODE_ENV: '"production"',
 API_HOST: '"http://xxx.xxx.com/AppHome/"' //生产环境改为绝对地址,免得路径错了
}
//调用
this.$http
  .post(process.env.API_HOST + "GetApproveTypeList", { ID: 0 })
  .then(data => {
  let $data = data.data;
  if ($data.IsSuccess) {
    this.list.push(...$data.Model);
  }
});

路由加载切换

异步加载可以加快首屏加载速度,但是在开发阶段会导致热加载变慢,所以根据NODE_ENV来判断,开发环境不使用异步

let _import
if (process.env.NODE_ENV === 'development') {
 _import = file => require('@/components/' + file + '.vue').default
}
if (process.env.NODE_ENV === 'production') {
 _import = file => () => import('@/components/' + file + '.vue')
}

routes: [
  {
    path: '/',
    name: 'Index',
    component: _import('Approve/Index'),
    meta: {
      level: 1
    }
  },
]

打包

dll打包

1、在build目录新建webpack.dll.conf.js

var path = require("path");
var webpack = require("webpack");
module.exports = {
  // 你想要打包的模块的数组
  entry: {
    vendor: ['vue/dist/vue.esm.js', //有些资源需要直接指定js,否则会重复打包
         'vuex',
         'axios',
         'vue-router'
        ]
  },
  output: {
    path: path.join(__dirname, '../static/js'), // 打包后文件输出的位置
    filename: '[name].dll.js',
    library: '[name]_library'
    // vendor.dll.js中暴露出的全局变量名。
  },
  plugins: [
    new webpack.DllPlugin({
      path: path.join(__dirname, '..', '[name]-manifest.json'),
      name: '[name]_library',
      context: __dirname
    }),
    // 压缩打包的文件
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false
      }
    })
  ]
};

2、在build目录下的webpack.prod.conf.js添加新插件

const webpackConfig = merge(baseWebpackConfig, {
  //less
 plugins: [
  //less
  new webpack.DllReferencePlugin({
   context: __dirname,
   manifest: require('../vendor-manifest.json')
  })
 ]
})

3、在项目根目录下的index.html内添加dll.js引用

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>title</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 </head>
 <body>
  <div id="app"></div>
  <!-- built files will be auto injected -->
  <script src="./static/js/vendor.dll.js"></script>
 </body>
</html>

4、在项目根目录下的package.json内添加dll命令(顺便给build命令添加report),运行一次生成dll.js

"scripts": {
  "dev": "node build/dev-server.js",
  "start": "npm run dev",
  "build": "node build/build.js --report",
  "dll": "webpack --config build//webpack.dll.conf.js"
 }

关闭SourceMap

config -> index.js
module.exports = {
 //less
 build: {
  //less
  productionSourceMap: false,
 },
}

总结

以上所述是小编给大家介绍的vue-cli常用设置总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Prototype源码浅析 String部分(四)之补充
Jan 16 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
JS实现多物体缓冲运动实例代码
Nov 29 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
AngularJS基础 ng-href 指令用法
Aug 01 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 Javascript
ES6学习教程之Map的常用方法总结
Aug 03 Javascript
vue cli 全面解析
Feb 28 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
js根据后缀判断文件文件类型的代码
May 09 Javascript
JS处理一些简单计算题
Feb 24 #Javascript
jQuery 改变P标签文本值方法
Feb 24 #jQuery
jQuery实现标签子元素的添加和赋值方法
Feb 24 #jQuery
通过js动态创建标签,并设置属性方法
Feb 24 #Javascript
JS随机数产生代码分享
Feb 24 #Javascript
JS中常用的消息框总结
Feb 24 #Javascript
JS改变页面颜色源码分享
Feb 24 #Javascript
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python3多线程知识点总结
2019/09/26 Python
Python创建数字列表的示例
2019/11/28 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
python下载的库包存放路径
2020/07/27 Python
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
中海讯通笔试题
2015/09/15 面试题
法律进学校实施方案
2014/03/15 职场文书
职务任命书范本
2014/06/05 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
环保建议书作文500字
2015/09/14 职场文书
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python