如何将多文件node.js应用程序转换为单个文件?

rye*_*guy 20 javascript node.js

如果我有一个充满了许多require语句的node.js应用程序,我该如何将它编译成一个.js文件?我必须手动解析require语句并确保以正确的顺序加载类.是否有一些工具可以做到这一点?

让我澄清一下.

在node.js上运行的代码不是特定于节点的.在只有我做那件事没有直接的浏览器当量使用require,这就是为什么我问.它没有使用任何节点库.

vvo*_*vvo 8

您可以将webpack与target:'node'一起使用,它将内联所有必需的模块并将所有内容导出为单个,独立,一个文件,nodejs模块

http://webpack.github.io/docs/configuration.html#target


Har*_*ono 6

尝试以下:

  1. npm i -g @vercel/ncc

  2. ncc 构建 app.ts -o dist

请参阅此处的详细信息/sf/answers/4572217261/


Ray*_*nos 3

如果你想将通用代码发送到浏览器,我个人会推荐像brequirerequireJS这样的东西,它可以将你的 NodeJS 源“编译”为异步加载代码,同时保持顺序。

对于将实际的编译器编译成单个文件,您可能会使用 requireJS 的编译器,但我不会信任它来处理具有高复杂性和边缘情况的大型项目。

编写像 package.json 这样的文件应该不会太难,npm 使用该文件来声明文件在打包中的出现顺序。这样,您就有责任确保所有内容都按正确的顺序压缩,然后您可以编写一个简单的节点应用程序来读取 package.json 文件并使用文件 IO 创建编译脚本。

自动生成文件打包顺序需要构建依赖树并进行大量文件解析。这应该是可能的,但它可能会因循环依赖而崩溃。我不知道有哪个图书馆可以为你做这件事。