[js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)

本文继续接着上文,继续写下webpack.config.js的其他配置用法.

一、把两个文件打包成一个,entry怎么配置?

在上文中的webpack.dev.config.js中,用数组配置entry

webpack.dev.config.js文件代码:

1 console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
2 module.exports = {
3     entry : [‘./src/js/main.js‘, ‘./src/js/calc.js‘],
4     output : {
5         //__dirname,就是当前webpack.config.js文件所在的绝对路径
6         path : __dirname + ‘/dist‘, //输出路径,要用绝对路径
7         filename : ‘index.bundle.js‘ //打包之后输出的文件名
8     }
9 };

然后在src/js目录下面新建一个calc.js文件,代码如下:

1 function add( n1, n2 ){
2     return n1 + n2;
3 }
4 alert( add( 10, 20 ) );

之前的main.js文件的代码:

1 function say(){
2     alert( ‘ghostwu告诉你怎么学习webpack‘ );
3 }
4 say();

然后命令行下,执行npm run d执行打包命令,刷新index.html文件,就能看到两个结果了

二、把两个文件分别打包成2个文件,entry采用字面量(json)方式配置

 1 console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
 2 module.exports = {
 3     entry : {
 4         main : ‘./src/js/main.js‘,
 5         calc : ‘./src/js/calc.js‘
 6     },
 7     output : {
 8         //__dirname,就是当前webpack.config.js文件所在的绝对路径
 9         path : __dirname + ‘/dist‘, //输出路径,要用绝对路径
10         filename : ‘[name].bundle.js‘ //打包之后输出的文件名
11     }
12 };

filename中的[name]是计算属性,这里的name就是main和calc,执行npm run d打包命令之后,就会在dist目录下生成两个文件calc.bundle.js, main.bundle.js, 但是这两个文件并没有被引入到index.html文件,我们的index.html文件引入的还是index.bundle.js文件,我们后面会用插件解决

三、filename可以用别的计算属性

官网配置参考:https://webpack.js.org/configuration/output/#output-filename

filename支持4种动态起名字的方式( id, name, hash, chunkhash )

 1 console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
 2 module.exports = {
 3     entry : {
 4         main : ‘./src/js/main.js‘,
 5         calc : ‘./src/js/calc.js‘
 6     },
 7     output : {
 8         //__dirname,就是当前webpack.config.js文件所在的绝对路径
 9         path : __dirname + ‘/dist‘, //输出路径,要用绝对路径
10         filename : ‘[id].bundle.js‘ //打包之后输出的文件名
11     }
12 };

id就是模块的编号( 0, 1, .... )

chunkhash:

 1 console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
 2 module.exports = {
 3     entry : {
 4         main : ‘./src/js/main.js‘,
 5         calc : ‘./src/js/calc.js‘
 6     },
 7     output : {
 8         //__dirname,就是当前webpack.config.js文件所在的绝对路径
 9         path : __dirname + ‘/dist‘, //输出路径,要用绝对路径
10         filename : ‘[chunkhash].bundle.js‘ //打包之后输出的文件名
11     }
12 };

[name]与[hash]组合使用

 1 console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
 2 module.exports = {
 3     entry : {
 4         main : ‘./src/js/main.js‘,
 5         calc : ‘./src/js/calc.js‘
 6     },
 7     output : {
 8         //__dirname,就是当前webpack.config.js文件所在的绝对路径
 9         path : __dirname + ‘/dist‘, //输出路径,要用绝对路径
10         filename : ‘[name]-[hash].bundle.js‘ //打包之后输出的文件名
11     }
12 };

时间: 2024-10-12 15:47:37

[js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)的相关文章

[js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法

[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上) [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下) [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上) [js高手之路]深入浅出webpack教程系

[js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解

接着上文,重新在webpack文件夹下面新建一个项目文件夹demo2,然后用npm init --yes初始化项目的package.json配置文件,然后安装webpack( npm install [email protected] --save-dev ),然后创建基本的项目文件夹结构,好了,我们的又一个基本项目结构就搭建好了. 第一.开始通过webpack.config.js文件配置我们的webpack项目 首先在项目文件夹demo2下面,新建一个webpack.config.js文件,这

[js高手之路]深入浅出webpack教程系列8-(postcss-loader,autoprefixer,html-loader,less-loader,ejs-loader)用法

我们接着上文,那么在上篇文章的最后,写到了css-loader的用法,如果你用心发现,就能看到我在style.css样式文件中写了一个这样的样式: div { transition: all ease 1s; } 一.这是一个css3的过渡样式,我们知道,写css3的时候,需要加上浏览器前缀. 那么我们着这里就需要安装postcss-loader和autoprefixer插件 安装postcss-loader: npm install postcss-loader --save-dev 安装au

[js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上)

还记得我们上文中的index.html文件吗? 那里面的script标签还是写死的index.bundle.js文件,那么怎么把他们变成动态的index.html文件,这个动态生成的index.html文件会动态引入我们打包后生成的js文件呢?,我们可以使用插件html-webpack-plugin,首先安装这个插件npm install html-webpack-plugin --save-dev,好的,接下来就开始用这个插件了 官方参考文档: 插件通用用法:https://webpack.j

[js高手之路]深入浅出webpack教程系列7-( babel-loader,css-loader,style-loader)的用法

什么是loader呢,官方解释为文件的预处理器,通俗点说webpack在处理静态资源的时候,需要加载各种loader,比如,html文件,要用html-loader, css文件要用css-loader,style-loader等等. 官方参考文档:https://webpack.js.org/loaders/ 我们从本文开始,重新搭建一个项目结构来解释下loader的用法. 一.项目结构搭建准备: 目录结构: 1 demo3 2 dist 3 src 4 components 5 modal.

[js高手之路]深入浅出webpack教程系列5-插件使用之html-webpack-plugin配置(中)

上文我们讲到了options的配置和获取数据的方式,本文,我们继续深入options的配置 一.html-webpack-plugin插件中的options除了自己定义了一些基本配置外,我们是可以任意的添加自定义的数据 webpack.dev.config.js文件: 1 var HtmlWebpackPlugin = require('html-webpack-plugin'); 2 module.exports = { 3 entry : { 4 main : './src/js/main.

[js高手之路]深入浅出webpack教程系列6-插件使用之html-webpack-plugin配置(下)

上文我们对html-webpack-plugin的实例htmlWebpackPlugin进行了遍历分析,讲解了几个常用属性( inject, minify )以及自定义属性的添加,本文,我们继续深入他的配置选项的探讨. 一.chunks选项 这个属性非常有用,可以指定某个页面加载哪些chunk( 如:js文件 ) 我们可以用他做多个页面模板的生成. 比如,我们在实际开发中,做一个博客网站,一般来说有首页,文章列表页,文章详情页等等,这些页面都有一个特点,都要引入一些公共的js文件以及该页面特有的

[js高手之路]深入浅出webpack系列1-安装与基本打包用法和命令参数

webpack,我想大家应该都知道或者听过,Webpack是前端一个工具,可以让各个模块进行加载,预处理,再进行打包.现代的前端开发很多环境都依赖webpack构建,比如vue官方就推荐使用webpack.废话不多说,我们赶紧开始吧. 第一步.安装webpack 新建文件夹webpack->再在webpack下面新建demo->命令行切换到demo目录,使用npm init --yes 初始化项目的package.json文件,然后执行npm install webpack --save-de

[js高手之路]设计模式系列课程-发布者,订阅者重构购物车

发布者订阅者模式,是一种很常见的模式,比如: 一.买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房源信息,根据手头上掌握的客户联系信息(买房的人的手机号),通知买房的人,他充当了发布者的角色 卖主想卖掉自己的房子,就需要告诉中介,把信息交给中介发布 二,网站订阅信息的用户 订阅者角色:需要订阅某类信息的网民,如某个网站的javascript类型文章 发布者角色:邮箱服务器,根据网站收集到的用户订