温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue-cli常用设置有哪些

发布时间:2021-07-30 11:43:25 来源:亿速云 阅读:103 作者:小新 栏目:web开发

这篇文章给大家分享的是有关vue-cli常用设置有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

基于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常用设置有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI