webpack 学习2 入口(entry)和输入管理(output)
在开始上代码之前,先让我们盘一盘什么是webpack中的入口和输入
入口
假设你现在手里有一个水龙头,然后十个人用水管从你这里拿水。你这个龙头就是水的入口,水管就是你和这些人的依赖联系。现在供水局的要来查有多少个人在用你的水,只要顺这水管去查,就ok了。
webpack中的入口文件就是类似与这样的效果,是一个确定直接依赖和间接依赖文件,然后才好将他们统统打包,要不然你在某个地方使用的jquery,而又没有打包对应的依赖库,又怎么能使用呢
输入
webpack 把东西打包之后,放在那里,要不要分类。输出就是webpack放置东西的地方
号概念清楚了上代码
const path = require("path");//这个是node.js自带的路径模块 可以有效的防止不同机器上路劲出现差异问题
module.exports = {
mode: 'development',//配置
//入口配置接收三种类型的参数,string array object,以下分别对每一种进行示范操作
// entry: path.join(__dirname, 'src/index.js'),//使用string 单入口文件可以这样直接定义入口文件地址
// entry: [//使用array
// './src/index.js',//也可以直接使用相对地址,只要你能够确保最终的结果能够和你预期的一样就够了 不过使用这种方法创建的多入口,打包后只会输出一个main.js文件,
// // 为什么?两个原因 1没有配置output 指定输出的文件名 2即便配置了,但使用[]建立多入口的方式也会是webpack无法识别入口文件的标识,也就无法动态生成输入文件名,只能打包成一个main.js
// './src/index2.js'
// ],
// entry: {//使用对象 推荐使用这种方法去作为创建多入口的参数,
// index: path.join(__dirname, 'src/index.js'),//输入文件会默认自动根据这个对象的key值创建输出文件名 这个会创建一个app.js的输出文件
// index2:path.join(__dirname,'src/index2.js'),
// },
entry: () => {//使用方法 其实这个上述几种创建方式没有任何实质上的区别,只要在函数内返回对应的值即可,不过有一点好处就是,这个是动态的
function join(src) {
return path.join(__dirname, 'src/' + src);
}
return {
app: join('index.js'),//可以少敲几个代码
app2: join('index2.js'),
}
},
//还可以使用promise对象
// entry: () => new Promise((success) => success({
// app: path.join(__dirname, 'src/index.js'),
// app2: path.join(__dirname, 'src/index2.js'),
// })),
output: {//输入文件配置
path: __dirname + '/build',//指定输出文件 的地址
// filename: './js/index.js',//指定输入文件名 这个表示在输出目录build/js/index.js文件,如果存在多个入口就不能写死了否则webpack会提示两个输出文件拥有相同的名字错误,
// 可以不指定或是由下面的方法,
// 请注意 在入口文件使用的字符串或者数组作为参数,则输入的文件只会有一个
// filename: "./js/[hash].js",//以入口文件的哈希值来命名
filename:"./js/[name].js",//以入口文件的key值作为输入文件名 列入entry中是{app:"./src/index.js"} 那么对应的输出文件就是 app.js,这个只能是在entry参数为object时使用,其实还有更多别名的使用详情请去webpack官网查询
}
}
webpack 学习2 入口(entry)和输入管理(output)的更多相关文章
- webpack学习笔记--配置entry
Entry entry 是配置模块的入口,可抽象成输入,Webpack 执行构建的第一步将从入口开始搜寻及递归解析出所有入口依赖的模块. entry 配置是必填的,若不填则将导致 Webpack ...
- webpack学习_管理输出(管理资源插件)
管理输出步骤 Step1:在src新建文件print.js添加逻辑 Step2:在src/index.js import 引用新添加的逻辑 Step3:更新dist/index.html文件,修改引入 ...
- 更博不能忘——webpack学习笔记
webpack是前端构建系统就像grunt和gulp(之前有学习过grunt所以也就大概明白webpack是个什么东西),所以说前端技术大部分还真是相通的,现在觉得当时多看的东西并不白费,虽然长时间不 ...
- 【原】webpack学习笔记
之前在react的项目中有用过webpack,不过没有认真的去研究,这段时间又重新好好的学习一下webpack,发觉 webpack是一个很强大的东西.而且很好用,方便,接下来主要是做一下学习的笔记 ...
- webpack学习(入门基础)
webpack的学习webpack是什么?1:加载模块(将JS.sass/less.图片等作为模块来处理使用) 2:进行打包 webpack的优势?1:webpack以commonJS(JS的规范)的 ...
- webpack 学习心得(一)
Webpack 是一个模块打包器.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 因为本人也正在学习webpack ,所以此篇文章比较入门. 首先你想使用webp ...
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件
一 .webpack学习环境准备: 1:window系统 2:安装node.js 官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...
- Webpack 学习总结
1.Webpack的特性 webpack 模块打包机,分析你的项目结构,找到JavaScript模块以及其他一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将其打包为合适的格式以 ...
- webpack学习文档
webpack课程 目录 第1章 webpack简介... 1 1.1 webpack是什么?... 1 1.2 官网地址... 2 1.3 为什么使用 webpack?... 3 ...
随机推荐
- YOLOv1到YOLOv3的演变过程及每个算法详解
1,YOLOv1算法的简介 YOLO算法使用深度神经网络进行对象的位置检测以及分类,主要的特点是速度够快,而且准确率也很高,采用直接预测目标对象的边界框的方法,将候选区和对象识别这两个阶段合二为一, ...
- ubuntu安装deb包(dpkg)
安装 sudo dpkg -i DEB_PACKAGE 卸载 sudo dpkg -r PACKAGE_NAME 重新配置已安装的包 Reconfigure an existing package 例 ...
- 在Eclipse中配置安卓的开发环境 (踩过的坑)
这个学期学校有门安卓程序设计课需要安装安卓开发环境. 一开始安装的是Andriod Studio,但是过程很坎坷很心酸,遇到各种各样的问题,最后还没有解决. 没办法决定用Eclipse配置安卓环境,虽 ...
- auto_now_add与auto_now的区别
- springmvc对象作为 目标方法的参数。
/** * Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值.支持级联属性. * 如:dept.deptId.dept.address.tel 等 */ ...
- http 换成 https
UPDATE SYS_MENU M SET M.href = ( SELECT CASE WHEN substr(N.href, 0, 5) = 'http:' THEN 'https:'||subs ...
- 【HDU6701】Make Rounddog Happy【权值线段树+双向单调队列】
题意:给你一个序列,求满足要求的子序列个数,其中要求为: 1.子序列的max-子序列长度len<=k 2.子序列中不出现重复的数字 题解:首先看到子序列max,很容易想到枚举最大值然后分治,这个 ...
- java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包
首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; imp ...
- BZOJ 5137: [Usaco2017 Dec]Standing Out from the Herd(后缀自动机)
传送门 解题思路 这个似乎和以前做过的一道题很像,只不过这个是求本质不同子串个数.肯定是先把广义\(SAM\)造出来,然后\(dfs\)时把子节点的信息合并到父节点上,看哪个只被一个串覆盖,\(ans ...
- python里的深浅拷贝
拷贝就是拷贝,何来深浅之说? Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝:原则上就是把数据分离出来 ...