使用 CDN 为 S3 静态网站提供 node_modules

Using CDN to serve node_modules for S3 static websites

我按照一些教程在我的本地计算机上制作了一个 ReactJS 静态应用程序原型(无后端)。我已经使用 create-react-app 来生成我的项目。下一步(这不是教程的一部分)是将其作为静态网站上传到 S3。我注意到 node_modules 文件夹非常大(大约 500 MB)。

在我阅读有关 AWS 中静态网站的其他教程时,一些 JavaScript 库 (jquery) 实际上是使用 CDN 提供的,而不是与要上传到的应用程序文件夹捆绑在一起S3。也可以使用 node_modules 来完成,这样我就可以避免上传吗?

您不需要(也不应该)上传 node_modules。您的依赖项已编译,输出文件应在您构建应用程序后位于 /build 目录中。您只需要将该目录上传到 S3。

Create React App 附带开发和构建应用程序所需的工具。

发展

开发时,可以运行npm run start,它会运行将项目作为一个网站,在默认浏览器中打开。

建造

当您准备好部署时,使用 'npm run build',它将生成一个 build 目录,其中包含可供部署的优化代码。您可以将 build 目录的内容复制到您的 S3 存储桶中。 https://create-react-app.dev/docs/production-build

您还可以在 package.json 的脚本部分查看可用命令。

然后node_modules目录发生了什么

构建过程正在使用 webpack 构建项目。它只会包含 运行 您的应用程序所需的最少文件。它不会包括整个 node_modules 目录。