文章目录

前言

本篇博客是关于Webpack打包vue的配置以及一些问题解决整理,若文章中出现相关问题,请指出!

所有博客文件目录索引:博客目录索引(持续更新)

一、使用webpack来进行vue-cli模块化开发


使用vue-cli创建项目,webpack打包


# 1、全局安装webpack
npm install webpack -g

# 2、安装vue-cli脚手架工具 (卸载旧版本: npm uninstall vue-cli -g)
npm install -g @vue/cli-init

# 3、使用webpack来进行初始化项目 (vue2demo指的是初始化的项目名称)
# 我的vue工具目录在D:\software\nvm_1.1.7\installnpm\node_modules\@vue\cli-init\node_modules\.bin,在你对应的安装目录下,要自己去找一下,不然很容易出现找不到该命令
vue init webpack vue2demo
# 配置信息
? Project name vue2demo
? Project description A Vue.js project
? Author changlu
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recommended) npm

vue-cli · Generated "vue2demo".

# 4、进入创建的项目目录
npm install # 安装依赖

二、Webpack配置区分开发环境和生产环境


Webpack配置区分开发环境和生产环境


1、安装cross-env:​​npm install cross-env​

我们使用webpack来打包vue-cli的话就会有如下的模块:

WebPack实战 WebPack打包Vue项目_npm

2、添加指定的全局变量

我们只需要看config目录下的两个js文件即可,对应是开发环境、生产环境

module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
BASE_URL: '"http://localhost:8081"'
})

3、使用

若是想要全局直接获取到则通过如下:

# 示例:process.env.NODE_ENV
process.env.xxxx

三、vue项目打包

完整vue打包报错情况解决方案:vue项目打包 打包运行报错以及Element UI字体图标不显示问题解决详细过程

3.1、config—index.js文件

找到build下面的 assetsPublicPath: ‘/’,然后修改为 assetsPublicPath: ‘./’(即“/”前加点)

WebPack实战 WebPack打包Vue项目_生产环境_02

小提示:

上面这步修改完可能有些直接npm run build打包后项目都正常了,可跳过下面第二步,如果打包后运行有类似下面的报错,需进行下面第二步的配置。

3.2、build—webpack.prod.conf.js 文件

按上面的位置找到webpack.prod.conf.js文件,在里面的output添加参数:

publicPath: './'

WebPack实战 WebPack打包Vue项目_npm_03

3.3、element ui 字体文件加载出错

WebPack实战 WebPack打包Vue项目_前端_04

如果没有引入element ui字体图标的话,可能到这步就重新打包就正常了,如果引入了element

ui的话可能还会出现如下的问题(两个字体文件加载不到):

问题原因:


查看 /build/webpack.base.conf.js 文件可以发现,woff 或 ttf 这些字体会经由 url-loader
处理后在 static/fonts 目录下生成相应的文件。


WebPack实战 WebPack打包Vue项目_前端_05

也就是说实际应该通过 /static/fonts/** 路径来获取字体图标,而实际却是请求

/static/css/static/fonts/**,自然报 404 错误。

WebPack实战 WebPack打包Vue项目_生产环境_06

解决方案

打开 build/utils.js 文件,在如下位置添加 ​​publicPath: '…/…/'​

WebPack实战 WebPack打包Vue项目_前端_07

之后运行​​npm run dev​​即可


3.4、路由跳转出现js访问404问题

将history模式改为hash模式即可解决!


四、关闭Webpack的debug模式

请问如何配置生产环境的webpack 才可以关闭Vue Devtools。

本质就是将Vue的debug关闭,加入代码到main.js中:

const isDebug_mode = process.env.NODE_ENV !== 'production';
Vue.config.debug = isDebug_mode;
Vue.config.devtools = isDebug_mode;
Vue.config.productionTip = isDebug_mode;

或者:

WebPack实战 WebPack打包Vue项目_webpack_08

五、Vue项目打包发布后,使浏览器WebPack中无法查看源码

修改config/index.js中的 build对象​​productionSourceMap: false​​即可隐藏源码。

我们在打包时就能够进行关闭。

WebPack实战 WebPack打包Vue项目_vue.js_09

实际上线之后:此时就看不到了


我是长路,感谢你的耐心阅读。如有问题请指出,我会积极采纳!
欢迎关注我的公众号【长路Java】,分享Java学习文章及相关资料
Q群:851968786 我们可以一起探讨学习
注明:转载可,需要附带上文章链接