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参数的小问题
Mar 02 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
jQuery写fadeTo示例代码
Feb 21 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
JS截取字符串实例详解
Nov 24 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
Vue学习笔记进阶篇之单元素过度
Jul 19 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
详解Vue中一种简易路由传参办法
Sep 15 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
Dec 27 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 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 mysql分页实例代码
2008/04/10 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
JS hashMap实例详解
2016/05/26 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
Python 元类实例解析
2018/04/04 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
记者岗位职责
2014/01/06 职场文书
五一家具促销方案
2014/01/10 职场文书
十八大闭幕感言
2014/01/22 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
视光学专业自荐信
2014/06/24 职场文书
村委会贫困证明范本
2014/09/17 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
见习报告格式范文
2014/11/08 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
工程款催款函
2015/06/24 职场文书
借钱欠条怎么写
2015/07/03 职场文书
毕业感言怎么写
2015/07/31 职场文书
goland 设置project gopath的操作
2021/05/06 Golang