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

news/2024/6/19 3:40:27

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

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

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

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

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

然后在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)方式配置

console.log( __dirname ); //D:\ghostWu\bak\webpack\demo2
module.exports = {
    entry : {
        main : './src/js/main.js',
        calc : './src/js/calc.js'
    },
    output : {
        //__dirname,就是当前webpack.config.js文件所在的绝对路径
        path : __dirname + '/dist', //输出路径,要用绝对路径
        filename : '[name].bundle.js' //打包之后输出的文件名
    }
};
    
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/config...

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

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

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

chunkhash:

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

[name]与[hash]组合使用


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

clipboard.png


http://www.niftyadmin.cn/n/4288936.html

相关文章

用“心”管理,收获人心

管理者怎样才能收获人心?答案是:用“心”去管理。 只有用“心”管理,才能将心比心,以心换心,从而收获人心。 具体来讲,管理者需要具备以下八种心态。即:尊重之心、期望之心、合作之心、沟通之…

《SQLServer修改服务器、数据库的排序规则》

《SQLServer修改服务器、数据库的排序规则》 目录 《SQLServer修改服务器、数据库的排序规则》 一、修改服务器的排序规则 (一)数据库服务器排序规则介绍 (二)数据库服务器排序规则的设置 2.1:查看数据库服务器排…

通过子域名来窃取全局共享的Cookie,间接绕过Uber的单点登录认证

本文讲的是通过子域名来窃取全局共享的Cookie,间接绕过Uber的单点登录认证,Uber使用Amazon CloudFront CDN的本意本来是为终端用户提供低延迟性和高传输速度,增加用户的客户的体验,但没想到,其子域名saostatic.uber.co…

《第一部分:什么是测试》

目录 一、什么是软件测试(有哪些分类) 二、专业术语 三、为什么要测试、什么是测试 (一)为什么要测试? (二)什么是测试? 四、通常软件生命周期包括哪些阶段? 五、典…

手机阅读让我抽空学习

下载Moto-Txt手机阅读器 爽! 总体感觉还不错, 以后搭地铁时有事儿做咯:D

《第二部分:TortoiseSVN的基本概念以及使用方法》

《第二部分:TortoiseSVN的基本概念以及使用方法》 目录 一、SVN的基本概念 二、SVN服务端安装 三、SVN客户端安装 四、SVN的基本操作使用 (一)TortoiseSVN客户端操作步骤: (二)SVN中常用的概念和操作…

字帖

中国钢笔书法集锦 中外名人格言钢笔字帖 好久没练钢笔字了, 真怀念过去的日子啊! 在这个计算机泛滥的时代, 大家的手想必都生了吧, 在这里让我们一起重新开始......

RabbitMQ安装部署(CentOS7)

安装Erlang RabbitMQ官方文档提供了三种方式安装Erlang,这里我们使用RabbitMQ官方推荐的方式,也就是基于packaged的方式,此方式只提供了运行RabbitMQ必要的组件,如果你需要完整的Erlang的环境,需要更换安装方式。 [Rab…