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 相关文章推荐
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
Table冻结表头示例代码
Aug 20 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
javascript实现获取服务器时间
May 19 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
react中Suspense的使用详解
Sep 01 Javascript
node后端服务保活的实现
Nov 10 Javascript
Vue实现背景更换颜色操作
Jul 17 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
鼠标图片振动代码
2006/07/06 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
什么是python的必选参数
2020/06/21 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
考试作弊被抓检讨书
2014/01/10 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
感恩教育观后感
2015/06/17 职场文书
纪检监察立案决定书
2015/06/24 职场文书
中学生运动会广播稿
2015/08/19 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
python基础详解之if循环语句
2021/04/24 Python
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS