Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Webpack用于后端应用程序是否会降低性能?_Javascript_Node.js_Webpack_Aws Lambda_Backend - Fatal编程技术网

Javascript 将Webpack用于后端应用程序是否会降低性能?

Javascript 将Webpack用于后端应用程序是否会降低性能?,javascript,node.js,webpack,aws-lambda,backend,Javascript,Node.js,Webpack,Aws Lambda,Backend,我正在研究使用AWS Lambda和NodeJS的无服务器应用程序 我正在考虑使用Webpack将所有NodeJS后端代码捆绑到一个JavaScript文件中,并使用树抖动等功能 就我理解节点工作的方式而言,导入(或要求)是在运行时解析的 我担心将所有内容捆绑在一个文件中会影响我的应用程序的性能,因为它总是加载整个JS文件,而不是在代码执行过程中解析JS文件时只加载JS文件。对于一个小型应用程序,对我的影响可能很小,但随着我的应用程序的增长,捆绑包也会随之增长 我可以创建多个bundle,每个用

我正在研究使用AWS Lambda和NodeJS的无服务器应用程序

我正在考虑使用Webpack将所有NodeJS后端代码捆绑到一个JavaScript文件中,并使用树抖动等功能

就我理解节点工作的方式而言,导入(或要求)是在运行时解析的

我担心将所有内容捆绑在一个文件中会影响我的应用程序的性能,因为它总是加载整个JS文件,而不是在代码执行过程中解析JS文件时只加载JS文件。对于一个小型应用程序,对我的影响可能很小,但随着我的应用程序的增长,捆绑包也会随之增长

我可以创建多个bundle,每个用于Lambda函数,但我的问题是:我的担心有效吗

仅在NodeJS环境中,将所有内容捆绑在单个文件中会影响我的性能吗,哪怕影响很小


注意:AWS Lambda不支持ES5,因此仅使用网页包进行传输不是这里的一个因素。

我认为相反,它可以在Lambda的“预热”过程中提高性能

实际上,当Lambda第一次被调用或很少被调用时,容器将被初始化,此时
require()
将加载节点模块。由于
require()
是异步的,有许多文件要加载可能会减慢此调用

请注意,一旦“预热”完成,模块就已经为下一次调用加载,使用单个文件将不再是优势

尝试将Webpack与一些不应在浏览器中执行的节点模块(例如ORMs)一起使用时可能会遇到一些问题,因为它们可能包含一些动态的
require()
(使用变量作为
require()
的参数)


总之,与在许多小文件上调用
require()
相比,在非常大的文件上调用
require()
应该不是什么大问题。但使用Webpack会增加复杂性,如果您的lambda不需要经常“预热”,则没有区别