最近,我一直在思考React应用的创建和服务方式。有三种在互联网上运行该应用程序的最流行方式:
只需构建并运行index.html
使用express.static构建并提供index.html
使用webpack和babel创建应用程序
创作上有什么区别?最好的方法是什么?我只能通过使用webpack来拥有后端逻辑吗?我是否错过了其他一些方法来创建React App?
只需构建并运行index.html
使用express.static构建并提供index.html文件
使用webpack和babel创建应用程序
最佳方法是什么?
取决于您的需求。就个人而言,我发现Webpack非常麻烦,因此在经过数年的混乱和浪费时间进行配置之后,我改回了Browserify。但是,有很多人喜欢Webpack,并且肯定有一个可用的插件生态系统,您可能会发现对项目有用。使用您所需要的。我只能通过使用webpack来拥有后端逻辑吗?
完全完全是100%无关。 Webpack用于制作客户端捆绑包。您在服务器端使用的与它无关。我是否错过了其他方法来创建React App?
您可以只使用React和Babel。从技术上讲,不需要Webpack,但是Webpack或同等工具将使您的生活更加轻松。
transpile,lint,minify,minimate,compress进行生产,而babel将确保在使用编写代码时,将您的代码转译为ES5等Vanilla JS的早期兼容版本,以支持较旧的浏览器。 ES6的方法/功能和语法,如果您不编写TypeScript,我知道您会喜欢使用ES6。
Webpack还包括将资源复制到构建文件夹,例如图像,视频和更多...在开发过程中,您可以使用Webpack模式' 开发
app.js
,并且在webpack.dev.babel.js和< [webpack.prod.babel.js扩展了基本或常规的webpack配置,例如在webpack.base.babel.js内部,该配置将导入/需要使用index.html文件作为模板,使用< [HtmlWebpackPlugin。您如何将模板结构化或拆分为逻辑组件取决于您。您可以将所有内容放到一个模板文件index.html中,但也可以仅包含所需的唯一元素,该元素可以/应该是简单的<div id="app"></div>
原因可能是页眉和页脚文件可以包含doctype,head和body的开头,例如,带有标签的标签,警告它们是否看到此文本,表明已在浏览器中禁用了JavaScript。Webpack以及更具体的HtmlWebpackPlugin将使用正确的HTML自动注入所有资产,例如bundle.js(.gz),main.css
等。标签。在较新版本的Webpack中,不要忘记手动添加所需的插件,例如html-webpack-plugin,terser-webpack-plugin,webpack-cli, Webpack的一些中间件:webpack-dev-middleware ,webpack-dev-middleware和webpack-pwa-manifest是最常用和最重要的一些。希望这可以帮助您理解为什么webpack和babel对于前端应用程序几乎是必需的,而babel甚至webpack不应用于本机NodeJS服务器端代码,因为肯定是编写尽可能多的本机支持的NodeJS代码的最佳实践,因为< [Async / Await,Promise,Promises的使用以及许多new Array and itterable方法,例如'map从我认为的节点7.1.x开始,本机支持','filter
,'reduce',Array.from()或'includes'”。