使用 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 目录。
我按照一些教程在我的本地计算机上制作了一个 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 目录。