WebPack实战 WebPack打包Vue项目

简介: WebPack实战 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的话就会有如下的模块:



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: ‘./’(即“/”前加点)



小提示:

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


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


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


publicPath: './'



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



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

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


问题原因:


查看 /build/webpack.base.conf.js 文件可以发现,woff 或 ttf 这些字体会经由 url-loader

处理后在 static/fonts 目录下生成相应的文件。



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

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



解决方案:


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



之后运行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;


或者:



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


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


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



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


相关文章
|
3月前
|
JavaScript 数据可视化
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
这篇文章介绍了如何使用vue-cli 2和3版本来创建Vue项目,并详细说明了两者之间的主要区别。
131 5
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
|
3月前
|
JavaScript 容器
乾坤qiankun框架搭建 主应用为vue3的项目。
乾坤qiankun框架搭建 主应用为vue3的项目。
223 2
|
2月前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
2月前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
3月前
|
JavaScript 数据可视化
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
这篇文章详细介绍了Vue CLI 3版本创建项目时的Runtime-Compiler和Runtime-only两种模式的区别、Vue程序的运行过程、render函数的使用、eslint的关闭方法,以及Vue CLI 2和3版本配置文件的不同和脚手架3版本创建项目的配置文件配置方法。
156 3
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
|
3月前
|
JavaScript
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
这篇文章是关于如何在webpack环境中配置Vue.js,包括安装Vue.js、解决报错、理解el与template的区别、使用SPA模式、抽离模板为对象、封装为单独的js文件、安装vue-loader时遇到的问题及解决方案,以及整个过程的总结。
99 2
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
|
2月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
3月前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
24 7
|
2月前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
3月前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
45 6