Node.js 收缩节点\u模块目录?

Node.js 收缩节点\u模块目录?,node.js,npm,node-modules,proguard,shrink,Node.js,Npm,Node Modules,Proguard,Shrink,我以前习惯了。它从应用程序依赖项(甚至第三方应用程序依赖项)中删除未使用的类和文件,从而大大降低包大小。node/npm中是否有等效项 npm prune--生产删除开发人员依赖项,并部分删除未使用的文件。但也不能从第三方软件包中完全删除不必要的代码。您不能完全删除它,运行脚本需要节点模块。 您可能会认为存在未使用的文件,但在某些情况下仍然需要它们 所以,在做这些事情时,让我们仔细检查一下。 如果总文件大小是您的问题。我建议使用此工具: 它为您提供了一些选项来控制删除或不删除哪个。您在问题中已

我以前习惯了。它从应用程序依赖项(甚至第三方应用程序依赖项)中删除未使用的类和文件,从而大大降低包大小。node/npm中是否有等效项


npm prune--生产
删除开发人员依赖项,并部分删除未使用的文件。但也不能从第三方软件包中完全删除不必要的代码。

您不能完全删除它,运行脚本需要
节点模块。
您可能会认为存在未使用的文件,但在某些情况下仍然需要它们

所以,在做这些事情时,让我们仔细检查一下。 如果总文件大小是您的问题。我建议使用此工具:


它为您提供了一些选项来控制删除或不删除哪个。

您在问题中已经提到了
--production
标志和
节点修剪
,因此我将省略这些选项。(您还可以查看与
节点修剪
类似的操作)


如果您使用的是像
rollup
webpack
这样的捆绑程序,它们可以删除您不使用的代码。(我不确定需要多少配置才能使其与
node\u模块
中的第三方模块安全工作,甚至不知道这是否可能。)在这种情况下,树震动不会从
node\u模块
中删除代码。相反,这些工具将所有内容捆绑到一个可执行文件中,并从中删除未使用的代码。

为什么要这样做?完全准确地静态分析第三方模块所需的内容并非完全可能,因为功能、文件或模块可以根据使用情况或运行平台动态引用。下载速度?这段代码在哪里运行?@jfriend00我知道可能存在动态引用,这就是为什么proguard允许将其配置为不删除某些类,即使它们看起来未使用。@jfriend00关于下载速度,我想了一下android软件包,但是的,我仍然很好奇:)所以,这只是在服务器上运行?我不确定尝试修剪东西是否有任何好处,也不确定是否只有风险。因为JS不是类型化的和预编译的,所以您可能会意外地删除某些在某些情况下需要的东西。那么,您想冒这个风险只是为了减少服务器上的磁盘空间使用?我认为你最好把时间花在那些能真正改进你的应用程序的项目上。接受这一点,因为它似乎最接近现在的可能。