当前位置: 首页 > 面试题库 >

压缩node_modules以进行客户端部署

余信然
2023-03-14
问题内容

我正在使用Node.js在JavaScript中实现客户端应用程序。因为我将在许多计算机上部署该软件,所以我希望最小化我分发的软件包的大小。特别是,我想从node_modules中删除所有不必要的文件。

对于初学者来说,这意味着对依赖项树进行重复数据删除和修剪,这npm对我来说可以做。但我也想删除所有package.json文件,尤其是部署不需要的其他文件。在我使用的许多程序包中,都有大量的测试,文件的多个版本(最小化,浏览器化等)等。我只需要正在运行的应用程序实际使用的JavaScript文件。否则,我将分发一些实际未使用的文件100Kb。

我知道,node-browserify但是我的应用程序将在CommonJS环境中运行,而不是在浏览器中运行,因此我想将模块分开并用加载它们require

我正在考虑编写一个Grunt插件,该插件使用遍历依赖树required,提取运行时所需的JavaScript文件,并将其写入树形结构,以便可以使用加载它们require(只需直接加载模块而无需package.json)。但是我想确保在解决之前没有人为我做到这一点。


问题答案:

FWIW :grunt-package-minifier。我的用例有点不寻常,因为我们正在开发一个跨浏览器的扩展框架。Browserify与标准NodeJS部署类似,与之不同,我们希望最小化分发的大小,包括任何CommonJS模块。但是与Browserify我们支持CommonJS的方式不同,我们可以保留模块结构,而不是将所有内容串联到一个大文件中。

从本质上讲,我package.json从中剥离了所有,自述文件,测试文件等,node_modules但将必需的JavaScript文件保留在可由CommonJS模块加载器使用的结构中。



 类似资料:
  • 我正在尝试使用foreign拨打Rest电话。 我如何用Java以非声明的方式使用Feign client builder进行Gzip压缩,因为我没有application.yml来以传统方式进行压缩。 有没有办法使用编码器或拦截器的假装客户端构建器的方法来做同样的事情?

  • 我通常使用压缩,使用解压(由于习惯使用gzip)。 我最近得到了一个带有超线程的四核CPU,所以我有8个逻辑核,我注意到许多核在压缩/解压过程中没有使用。 有什么方法可以利用未使用的内核来加快速度吗?

  • 当我向Kafka主题发送消息时,我可能会收到一条比其他消息大得多的消息。 因此需要在单消息级进行压缩。根据https://cwiki.apache.org/confluence/display/kafka/compression, 一组消息可以被压缩并表示为一个压缩消息。 同样,根据https://github.com/apache/kafka/blob/0.10.1/clients/src/ma

  • 本文向大家介绍C#文件流进行压缩和解压缩的方法,包括了C#文件流进行压缩和解压缩的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#文件流进行压缩和解压缩的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 6LoWPAN 定义了两种 IPv6 包压缩格式:LOWPAN_IPHC 和 LOWPAN_NHC。 为了能够更高效地压缩,LOWPAN_IPHC 依赖于完整的 6LoWPAN 信息。LOWPAN_IPHC 假设 6LoWPAN 通信都遵循下列条件: IP 的版本是 IPv6。 业务类型和 流标签都是零。 负载长度可以从下层协议头(6LoWPAN 分片头部或者 IEE E802.15.4 头部)中

  • 我想创建. zip文件,其中包含我从后端收到的压缩文件,然后将此文件发送给用户。两天来,我一直在寻找答案,但找不到合适的解决方案,也许你可以帮我:) 目前,代码是这样的:(我知道我不应该在spring控制器中完成所有工作,但不关心这一点,它只是为了测试目的,以找到使其工作的方法) 但问题是,使用的代码,当我输入URL:localhost:8080/zip我得到文件:test.zip.html而不是