webpack文件配置
目录
1.mode
2.devtool
3.entry
4.output
webpack提供的 CLI 支持很多的参数,例如 --mode,但更多时候我们会使用配置文件来控制webpack的行为。默认情况下,webpack会读取webpack.config.js 文件作为配置文件,但也可以通过 CLI 参数 --config 来指定某个配置文件。配置文件中通过CommonJS模块导出一个对象,对象中的各种属性对应不同的webpack配置,例子如下:
module.exports = {//在这里添加配置对象
}
【注】
1)配置文件中的代码,必须是有效的node代码
2)当命令行参数与配置文件中的配置出现冲突时,以命令行参数为准
1.mode
编译模式,字符串,取值为development或production,指定编译结果代码运行的环境,会影响webpack对编译结果代码格式的处理
2.devtool
控制是否生成且如何生成source map(源码地图),具体配置请点击这里
【扩展】源码地图
A)概念:前端发展到现阶段,很多时候不会直接运行源代码,可能需要对源代码进行合并、压缩、转换等操作,真正运行的是转换后的代码。这就给调试带来了困难,因为当运行发生错误的时候,我们更加希望能看到源代码中的错误,而不是转换后代码的错误。为了解决这一问题,chrome浏览器率先支持了source map,其他浏览器纷纷效仿,目前,几乎所有的新版浏览器都支持了source map。source map实际上是一个配置,配置中不仅记录了所有源码内容,还记录了和转换后的代码的对应关系。
B)最佳实践:source map应在开发环境中使用,作为一种调试手段,不应该在生产环境中使用。source map的文件一般较大,不仅会导致额外的网络传输,还容易暴露原始代码。即便要在生产环境中使用source map,用于调试真实的代码运行问题,也要做出一些处理规避网络传输和代码暴露的问题
3.entry
该配置指定文件入口,配置的属性名为chunk名称,其值为指定文件的路径(入口模块)。一个entry对象中可以包含多个chunk,一个chunk也可以包含多个入口模块,代码如下
module.exports = {mode: "production",entry: {main: "./src/index.js", //属性名:chunk的名称, 属性值:入口模块(启动模块)a: ["./src/a.js", "./src/index.js"] //启动模块有两个},devtool: "source-map"
}
4.output
指定编译结果文件,这个配置中包含很多属性,最重要的是 path 和 filename,path 的属性值为打包后文件的路径,一般使用node的内置模块 path 的 path.resolve() 方法来搞定路径问题,如果不清楚,请戳这里。filename决定了我们打包好的文件名称,由于打包过程中,可能生成多个文件,因此这里的命名不能简单的直接指定命名,而是可以采用计算出文件名的方法,有以下几个规则
- name:chunkname
- hash:总的资源hash,因为当改变文件内容时,hash值会跟着变化,所以通常用于解决缓存问题,防止因文件内容改变而文件名没有发生变化时,浏览器不重新请求资源的情况。
- chunkhash:使用chunkhash
- id:使用chunkid,因为其在生产环境为以0开头的数字,而在开发环境为入口文件的文件名,所以不推荐
举个例子来看看怎么配置该属性叭
var path = require("path")
module.exports = {mode: "development",entry: {main: "./src/index.js", //属性名:chunk的名称, 属性值:入口模块(启动模块)a: ["./src/a.js", "./src/index.js"] //启动模块有两个},output: {path: path.resolve(__dirname, "target"), //必须配置一个绝对路径,表示资源放置的文件夹,默认是distfilename: "[name].[chunkhash:5].js" //配置的合并的js文件的规则,chunkhash:5表示只取chunkhash的前5位},devtool: "source-map"
}
【结果】生成的文件如下图,其中后缀位map的文件是源码地图
还有两个重要的配置,loader和plugin,单独来说
webpack文件配置相关推荐
- Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue
Vue 单文件组件 传统组件的问题和解决方案 1. 问题 1. 全局定义的组件必须保证组件的名称不重复 2. 字符串模板缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \ 3. 不支持 CS ...
- 建立项目的webpack简单配置
实战项目中的 Webpack 配置: 说明:以下命令通过 Git Bash 执行 1.建立webpack-demo文件夹及npm初始化 Administrator@PC-20170414ZFJO MI ...
- webpack简单配置
webpack有4个重点内容: 入口(entry):指示webpack 应该使用哪个模块,来作为构建其内部依赖图的开始 输出(output):告诉 webpack 在哪里输出它所创建的 bundles ...
- webpack代理配置打包后接口404_webpack 从零开始
什么是webpack? webpack 可以看做是是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖 ...
- VUE config/index.js文件配置
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面 (环境变量及其基本变量的配置) 1 2 3 4 5 6 7 8 9 10 11 ...
- 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离
一.认识webpack 什么是webpack? 这个webpack还真不是一两句话可以说清楚的. 我们先看看官方的解释: At its core, webpack is a static module ...
- vue-cli+webpack打包配置
vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...
- 三.webpack基本配置
webpack基本配置 1.关于webpack.config.js 首先我们先建立这样的目录 文件说明: src : 放置源文件的目录 dist : 放置打包后文件的目录 index.html : 初 ...
- (超全)Vue.js学习笔记—webpack基础配置(webpack4+babel7+vue2)
webpack基础配置&&单文件组件与vue-loader 参考<Vue,js>实战(梁灏编著) 笔者近期学习Vue.js进阶篇,参考教程流程完成webpack.vue.b ...
最新文章
- 使用java.util.Timer来周期性的执行制定的任务
- 今晚8点开播 | 深度解析知识图谱发展关键阶段技术脉络
- 2021牛客暑期多校训练营4 Tree Xor (区间异或上一个数+区间求交)
- Wireshark命令行工具tshark使用小记
- [ZJOI2008]生日聚会Party
- CentOS系统代理配置
- ucore-lab1-练习5report
- Java 面试就业指导,100 % 提高面试成功率
- java 性能调优_Java性能调优调查结果(第三部分)
- Cannot determine the location of the VS Common Tools folder.
- “你的深度学习框架包含15个漏洞”,360说 | 附论文
- Windows mobile美化之-短信界面美化修改~
- PSCAD学习笔记(一)
- opencontrail-vrouter命令
- Elasticsearch 解决集群 Yellow 与 Red 的问题
- 土星环年龄很轻?卡西尼号探测船坠毁前传送珍贵数据
- 目标跟踪OTB评估指标(OP, CLE, FPS)与matlab代码
- python数学编程 pdf,Python数学编程
- 等额本息还款法贷款利息计算方法及还款计划
- MyBatis在Spring中的事务管理