当前位置: 首页 > news >正文

个人微信注册网站网站建设二次开发

个人微信注册网站,网站建设二次开发,网站开发代理报价表,开源门户网站源码vue-cli3全面配置详解 vue-cli3-config 创建项目 配置环境变量 通过在package.json里的scripts配置项中添加–mode xxx来选择不同环境 在项目根目录中新建.env, .env.production, .env.analyz等文件 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧…vue-cli3全面配置详解 vue-cli3-config 创建项目 配置环境变量 通过在package.json里的scripts配置项中添加–mode xxx来选择不同环境 在项目根目录中新建.env, .env.production, .env.analyz等文件 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中代码中可以通过process.env.VUE_APP_BASE_API访问 NODE_ENV 和 BASE_URL 是两个特殊变量在代码中始终可用 .env serve默认的环境变量 NODE_ENV development VUE_APP_BASE_API https://demo.cn/api VUE_APP_SRC https://wechat-timg.oss-cn-hangzhou.aliyuncs.com/demo.env.production build默认的环境变量 NODE_ENV production VUE_APP_BASE_API https://demo.com/api VUE_APP_SRC https://img-wechat.oss-cn-hangzhou.aliyuncs.com/demo.env.analyz 用于webpack-bundle-analyzer打包分析 NODE_ENV production IS_ANALYZ analyz VUE_APP_BASE_API https://demo.com/api VUE_APP_SRC https://img-wechat.oss-cn-hangzhou.aliyuncs.com/demo修改package.json scripts: {serve: vue-cli-service serve,build: vue-cli-service build,analyz: vue-cli-service build --mode analyz,lint: vue-cli-service lint }配置vue.config.js const IS_PROD [production, prod].includes(process.env.NODE_ENV);module.exports {baseUrl: ./, // 默认/部署应用包时的基本 URLoutputDir: process.env.outputDir || dist, // dist, 生产环境构建文件的目录assetsDir: , // 相对于outputDir的静态资源(js、css、img、fonts)目录lintOnSave: false,runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本productionSourceMap: false, // 生产环境的 source mapparallel: require(os).cpus().length 1,pwa: {} };配置proxy跨域 const IS_PROD [production, prod].includes(process.env.NODE_ENV); module.exports {devServer: {// overlay: {// warnings: true,// errors: true// },open: IS_PROD,host: 0.0.0.0,port: 8000,https: false,hotOnly: false,proxy: {/api: {target: process.env.VUE_APP_BASE_API || http://127.0.0.1:8080,changeOrigin: process.env.NODE_ENV development ? true : false,}}} }修复HMR(热更新)失效 module.exports {chainWebpack: config {// 修复HMRconfig.resolve.symlinks(true);} }添加别名 const path require(path); const resolve (dir) path.join(__dirname, dir); const IS_PROD [production, prod].includes(process.env.NODE_ENV);module.exports {chainWebpack: config {// 添加别名config.resolve.alias.set(, resolve(src)).set(assets, resolve(src/assets)).set(components, resolve(src/components)).set(layout, resolve(src/layout)).set(base, resolve(src/base)).set(static, resolve(src/static));} }添加打包分析 const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPlugin;module.exports {chainWebpack: config {// 打包分析if (process.env.IS_ANALYZ) {config.plugin(webpack-report).use(BundleAnalyzerPlugin, [{analyzerMode: static,}]);}} }配置externals 防止将某些 import 的包(package)打包到 bundle 中而是在运行时(runtime)再去从外部获取这些扩展依赖 module.exports {configureWebpack: config {config.externals {vue: Vue,element-ui: ELEMENT,vue-router: VueRouter,vuex: Vuex,axios: axios}} }去掉console.log 方法一 const UglifyJsPlugin require(uglifyjs-webpack-plugin); module.exports {configureWebpack: config {if (IS_PROD) {const plugins [];plugins.push(new UglifyJsPlugin({uglifyOptions: {compress: {warnings: false,drop_console: true,drop_debugger: false,pure_funcs: [console.log]//移除console}},sourceMap: false,parallel: true}));config.plugins [...config.plugins,...plugins];}} }方法二使用babel-plugin-transform-remove-console插件 npm i --save-dev babel-plugin-transform-remove-console在vue.config.js中配置 const plugins []; if([production, prod].includes(process.env.NODE_ENV)) { plugins.push(transform-remove-console) }module.exports {presets: [[vue/app,{useBuiltIns: entry}]],plugins: plugins };开启gzip压缩 npm i --save-dev compression-webpack-pluginconst CompressionWebpackPlugin require(compression-webpack-plugin); const productionGzipExtensions /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;module.exports {configureWebpack: config {if (IS_PROD) {const plugins [];plugins.push(new CompressionWebpackPlugin({filename: [path].gz[query],algorithm: gzip,test: productionGzipExtensions,threshold: 10240,minRatio: 0.8}));config.plugins [...config.plugins,...plugins];}} }还可以开启比gzip体验更好的Zopfli压缩详见https://webpack.js.org/plugins/compression-webpack-plugin/ npm i --save-dev gfx/zopfli brotli-webpack-plugiconst CompressionWebpackPlugin require(compression-webpack-plugin); const zopfli require(gfx/zopfli); const BrotliPlugin require(brotli-webpack-plugin); const productionGzipExtensions /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;module.exports {configureWebpack: config {if (IS_PROD) {const plugins [];plugins.push(new CompressionWebpackPlugin({algorithm(input, compressionOptions, callback) {return zopfli.gzip(input, compressionOptions, callback);},compressionOptions: {numiterations: 15},minRatio: 0.99,test: productionGzipExtensions}));plugins.push(new BrotliPlugin({test: productionGzipExtensions,minRatio: 0.99}));config.plugins [...config.plugins,...plugins];}} }为sass提供全局样式以及全局变量 可以通过在main.js中Vue.prototype.srcprocess.env.VUEAPPSRC;挂载环境变量中的配置信息然后在js中使用src process.env.VUE_APP_SRC;挂载环境变量中的配置信息然后在js中使用srcprocess.env.VUEA​PPS​RC;挂载环境变量中的配置信息然后在js中使用src访问。 css中可以使用注入sass变量访问环境变量中的配置信息 module.exports {css: {modules: false,extract: IS_PROD,sourceMap: false,loaderOptions: {sass: {// 向全局sass样式传入共享的全局变量data: import ~assets/scss/variables.scss;$src: ${process.env.VUE_APP_SRC};}}} }在scss中引用 .home {background: url($src /images/500.png); }添加IE兼容 npm i --save babel/polyfill在main.js中添加 import babel/polyfill;配置vue.config.js const plugins [];module.exports {presets: [[vue/app,{useBuiltIns: entry}]],plugins: plugins };完整配置 安装依赖 代码如下: npm i --save-dev compression-webpack-plugin babel-plugin-transform-remove-console gfx/zopfli brotli-webpack-pluginpackage.json scripts: {serve: vue-cli-service serve,build: vue-cli-service build,analyz: vue-cli-service build --mode analyz,lint: vue-cli-service lint }vue.config.js const plugins []; // if([production, prod].includes(process.env.NODE_ENV)) { // plugins.push(transform-remove-console) // }module.exports {presets: [[vue/app,{useBuiltIns: entry}]],plugins: plugins }; vue.config.js const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPlugin; const UglifyJsPlugin require(uglifyjs-webpack-plugin); const CompressionWebpackPlugin require(compression-webpack-plugin); // const zopfli require(gfx/zopfli); // const BrotliPlugin require(brotli-webpack-plugin);const path require(path); const resolve (dir) path.join(__dirname, dir); const IS_PROD [production, prod].includes(process.env.NODE_ENV); const productionGzipExtensions /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;module.exports {baseUrl: ./, // 默认/部署应用包时的基本 URLoutputDir: process.env.outputDir || dist, // dist, 生产环境构建文件的目录assetsDir: , // 相对于outputDir的静态资源(js、css、img、fonts)目录lintOnSave: false,runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本productionSourceMap: false, // 生产环境的 source mapconfigureWebpack: config {// config.externals {// vue: Vue,// element-ui: ELEMENT,// vue-router: VueRouter,// vuex: Vuex,// axios: axios// }if (IS_PROD) {const plugins [];plugins.push(new UglifyJsPlugin({uglifyOptions: {compress: {warnings: false,drop_console: true,drop_debugger: false,pure_funcs: [console.log]//移除console}},sourceMap: false,parallel: true}));plugins.push(new CompressionWebpackPlugin({filename: [path].gz[query],algorithm: gzip,test: productionGzipExtensions,threshold: 10240,minRatio: 0.8}));// Zopfli压缩 https://webpack.js.org/plugins/compression-webpack-plugin/// plugins.push(// new CompressionWebpackPlugin({// algorithm(input, compressionOptions, callback) {// return zopfli.gzip(input, compressionOptions, callback);// },// compressionOptions: {// numiterations: 15// },// minRatio: 0.99,// test: productionGzipExtensions// })// );// plugins.push(// new BrotliPlugin({// test: productionGzipExtensions,// minRatio: 0.99// })// );config.plugins [...config.plugins,...plugins];}},chainWebpack: config {// 修复HMRconfig.resolve.symlinks(true);// 添加别名config.resolve.alias.set(, resolve(src)).set(assets, resolve(src/assets)).set(components, resolve(src/components)).set(layout, resolve(src/layout)).set(base, resolve(src/base)).set(static, resolve(src/static));// 打包分析if (process.env.IS_ANALYZ) {config.plugin(webpack-report).use(BundleAnalyzerPlugin, [{analyzerMode: static,}]);}// 多页面配置为js添加hash// config.output.chunkFilename(js/[name].[chunkhash:8].js)// 修改图片输出路径// config.module// .rule(images)// .test(/\.(png|jpe?g|gif|ico)(\?.*)?$/)// .use(url-loader)// .loader(url-loader)// .options({// name: path.join(../assets/, img/[name].[ext])// })},css: {modules: false,extract: IS_PROD,// 为css后缀添加hash// extract: {// filename: css/[name].[hash:8].css,// chunkFilename: css/[name].[hash:8].css//}sourceMap: false,loaderOptions: {sass: {// 向全局sass样式传入共享的全局变量// data: import ~assets/scss/variables.scss;$src: ${process.env.VUE_APP_SRC};data: $src: ${process.env.VUE_APP_SRC};},// px转换为rem// postcss: {// plugins: [// require(postcss-pxtorem)({// rootValue : 1, // 换算的基数// selectorBlackList : [weui, el], // 忽略转换正则匹配项// propList : [*]// })// ]// }}},pluginOptions: {// 安装vue-cli-plugin-style-resources-loader插件// 添加全局样式global.scss// style-resources-loader: {// preProcessor: scss,// patterns: [// resolve(__dirname, ./src/scss/scss/variables.scss)// ]// }},parallel: require(os).cpus().length 1,pwa: {},devServer: {// overlay: {// warnings: true,// errors: true// },open: IS_PROD,host: 0.0.0.0,port: 8000,https: false,hotOnly: false,proxy: {/api: {target: process.env.VUE_APP_BASE_API || http://127.0.0.1:8080,changeOrigin: true}}} };
http://www.huolong8.cn/news/296598/

相关文章:

  • 扬州网站开发公司电话网站建设的申请
  • 做一个答疑网站赣州app开发公司
  • 网站建设结课总结最简单的做网站的工具
  • 网站开发成本会计分录叶文语 厦门建设局
  • 科技网站制作wordpress导航代码
  • 如何编程制作自己的网站让php运行于wordpress
  • 重庆家政网站建设app与微网站的区别
  • php网站如何做多语言wordpress 手机视频
  • 陕西 做网站的公司自己做信息网站
  • 移动网站模板下载市建设局网站
  • 如何利用云服务器进行网站建设做高端企业网站
  • 团购网站策划揭阳网站制作案例
  • 重庆seo整站优化效果深圳建立网站公司网站
  • 部署iis网站网站负责人备案采集照具体要求
  • 南通哪些公司做网站北京网站设计济南兴田德润评价
  • 网站设计图wordpress首页分类标题
  • 无锡 做网站网页制作需要什么基础
  • 珠海建设网站公司哪家好人才网站建设
  • 技术先进的网站建设公大企业网站建设公司排名
  • 佳木斯哈尔滨网站建设灯罩技术支持东莞网站建设
  • 邯郸网站建设邯郸网站制作厦门关键词优化平台
  • 西安 网站建设 培训班html门户网站开发源代码
  • 百度怎么收录网站asp.net 新建网站
  • 怎么更换网站模板邵武建设局网站
  • 可信网站认证 代理商护肤网站的功能设计
  • 深圳网站建设优化城阳网站建设培训
  • 100个免费推广网站下载京东的网络营销方式
  • 网站内页做排名福州网站建设资讯
  • 网站建设相关行业有哪些正规营销型网站建设公司
  • 南通设计网站建设360建筑网怎么删除简历