我找不到有关"npm run build"工作原理的任何说明,
它简单易用且获取了运行良好的“build”文件夹,
但是,在create-react-app中,背后到底发生了什么?
它是否完全不同于使用构建工具的其他方式?
如果不是,那它是否利用了其他构建工具?
我找不到有关"npm run build"工作原理的任何说明,
它简单易用且获取了运行良好的“build”文件夹,
但是,在create-react-app中,背后到底发生了什么?
它是否完全不同于使用构建工具的其他方式?
如果不是,那它是否利用了其他构建工具?
开发人员经常将JavaScript和CSS拆分为单独的文件。单独的文件让您专注于编写执行单一操作的更模块化的代码块。执行单一任务的文件会降低您的认知负荷,因为维护它们是一项相当繁琐的任务。
背后到底发生了什么?
当将应用程序移至生产环境时,拥有多个JavaScript或CSS文件并不理想。用户访问您的网站时,每个文件都需要额外的HTTP请求,使得您的网站加载速度变慢。为了解决这个问题,您可以创建应用程序的"构建",将所有CSS文件合并成一个文件,并做同样的事情与您的JavaScript。这样,您就可以最小化用户获取的文件数量和大小。要创建此"构建",您需要使用"构建工具"。因此使用npm run build
命令。
正如您所提到的,运行命令(npm run build
)会创建build
目录。现在假设您的应用程序中有一堆CSS和JS文件:
css/
mpp.css
design.css
visuals.css
...
js/
service.js
validator.js
container.js
...
运行 npm run build
后,你的 build
目录将会是这样:
build/
static/
css/
main.css
js/
main.js
现在你的应用程序文件很少了。这个应用程序仍然是一样的,但被压缩成一个名为build
的小包。
最终结论: 如果所有它做的事情只是为用户节省几毫秒的加载时间,你可能会想知道生成构建是否值得。 如果您只是为自己或其他几个人制作网站,则不必担心此问题。 只有对于高流量网站(或者您希望很快成为高流量网站的网站),才需要生成项目的构建版本。
如果您只是学习开发,或仅制作低流量的网站,则可能不值得生成构建。
npm run <script-name>
是运行项目特定脚本的 npm 语法。这些脚本在package.json
文件的scripts
部分中定义。有关更多信息,请参见npm-scripts
文档。在create-react-app
中,最可能的是npm run build
只是调用了其他构建工具(如 gulp、grunt 或 webpack)。检查您的package.json
文件以查看它运行的确切命令。 - Leonid Beschastny