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 相关文章推荐
createElement动态创建HTML对象脚本代码
Nov 24 Javascript
jQuery MD5加密实现代码
Mar 15 Javascript
js 异步处理进度条
Apr 01 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
js密码强度检测
Jan 07 Javascript
jQuery四种选择器使用及示例
Jun 05 Javascript
javascript 中的console.log和弹出窗口alert
Aug 30 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
vue内置组件transition简单原理图文详解(小结)
Jul 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
PHP多个文件上传到服务器实例
2014/10/29 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
运行django项目指定IP和端口的方法
2018/05/14 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Python 定义只读属性的实现方式
2020/03/05 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Python xlwt模块使用代码实例
2020/06/10 Python
python推导式的使用方法实例
2021/02/28 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
PHP开发的一般流程
2013/08/13 面试题
药店营业员岗位职责
2015/04/14 职场文书
现实表现证明材料
2015/06/19 职场文书
优秀大学生申请书
2019/06/24 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB