Next.js,Razzle,CRA。 为什么要在下一个项目中使用它们。

TL; DR:请勿编写和使用自定义启动器。

Next.js,Razzle,CRA。 为什么要在下一个项目中使用它们。_第1张图片
CRA核心+普遍性= Razzle

亲爱的开发人员,请停止编写和使用“入门程序”。

起动器( 阵营起动-KIT,反应-终极版的通用热-例如, ):

  • 肿,有大量不必要的功能
  • 没有版本化,只能通过新的fork / re-pull更新
  • 作为存储库而不是模块生活
  • 维护不当,大多数入门者有很多未解决的问题
  • 代码不可读 ,指南和常见问题解答无济于事
  • 由于是非模块化的,用户无法轻松地从样板迁移或扩展它

工具包( CRA 拉扎勒 ,NWB)和框架( 接着 Nuxt after.js ):

  • 仅包含最基本的功能
  • 作为npm模块存在
  • 由专业社区版本化和维护
  • 有很棒的文档和指南
  • 是模块化的,用户可以轻松迁移和扩展自己的设置

请记住, 您的越野车 无论功能齐全还是重量轻 ,都不会被某些人用于REAL PRODUCTION PROJECTS中 此外,您需要维护您的启动器,解决问题并添加新功能。 即使您将仓库存档 ,您的代码仍将在某人的服务器和浏览器中运行

不要浪费其他开发人员的时间。
不要试图抗拒未来。
如果您不能提出新的想法,最好成为一名贡献者。

诸如CRA和Next.js之类的工具创建了一个版本化的,标准的,统一的开发环境和方法,可以根据需要轻松地对其进行扩展

facebookincubator / create-react-app
create-react-app-创建没有构建配置的React应用。 github.com
zeit / next.js
next.js-服务器渲染或静态导出的React应用的框架github.com
贾里德·帕默
razzle-✨创建不带配置的服务器渲染的通用JavaScript应用程序 github.com
Nuxt.js-通用Vue.js应用程序
Nuxt.js是用于创建具有服务器端渲染,代码拆分,热... Vue.js 应用程序的最小框架 。nuxtjs.org
纽约时报
正在启动新的JS应用? 使用kyt,github.com构建,测试和运行高级应用
包裹
快速,零配置的Web应用程序捆绑程序 parceljs.org

UPD:关于文章的负面语气,我收到了数十条评论。 让我澄清一些事情:

  • 如果您确定没有人可以使用此代码,则可以使用任何样板。
  • 最初的项目设置可能会像代码样式约定(styleguide)一样成为标准。
  • “复制粘贴”项目可以一直持续下去,直到出现具有可扩展webpack配置的统一初始设置。
  • 我不鼓励人们忽略内部因素。 反之亦然-尽可能多地学习。 但是,不能保证它是一个“好”的样板。
  • 最初的项目设置可能成为类似于代码样式约定的标准。 使用此类工具创建项目就像遵循样式指南。

为什么根本没有起动器?

每当有新事物发表时,大多数人都开始寻找样板。 那就对了; 他们想尝试一个新的库。 如果没有样板,您可以尝试编写并流行起来( 然后修复此sh#t,直到回购中不会出现400多个问题 )。

初学者在哪里出现?

Next.js,Razzle,CRA。 为什么要在下一个项目中使用它们。_第2张图片

我认为“样板时代”以来约曼已经启动-发电机的样板。 让我澄清一下:Yeoman出现时是一个非常进步的想法。

Yeoman生成器之所以有用,主要是因为当时文件处理复杂并且开发环境差。 项目由集成了非常不同的工具的一部分Gulp脚本提供支持: browsersync,livereload,browserify 等。

例如,AngularJS在v 1.3中没有对延迟加载和最小化的现成支持。 在StackExchange上没有有关AngularJS的LL + minify + es6的有用信息,因此克隆具有这些功能的启动器是开始开发的唯一方法。 那是2014年。

今天的首发

如今,我们拥有了出色的Webpack,可以解决文件处理和延迟加载的所有问题,拥有Angular和Vue中的SSR插件,以及CRA / razzle / Next.js / nwb之类的解决方案。 有什么理由来打造一个入门者?

神话-入门可以加速发展

这主要是一个神话。 您必须花费更多时间才能开始使用入门。 入门程序的哪一部分可加快开发速度? 最明显的答案-代码组织+ Webpack配置。 如果代码组织可能是一个悬而未决的问题, 那么Webpack配置显然是初学者成功的90%。

razzle / Next.js已经预定义了Webpack配置,但最重要的是: 他们以统一的方式进行操作,并允许单独存储自定义配置。 甚至将其分为npm模块。

当您使用CRA / razzle / etc。时,您始终知道与您的代码一起工作的同事或其他开发人员不必花时间研究不可读的错误设置。

误解—如果启动程序具有,则它已根据需要集成

从GraphQL到罕见的Redux插件,大多数入门者都具有所有功能。 这会导致,肿,难以理解,但最重要的是-无法使用的启动器。 特别是对于那些寻找不太复杂和轻量级内容的开发人员。

这也解释了为什么人们无限地编写新的“轻量级”入门书。

请你停下来!

只需算一下真反应表中有多少样板即可— 31 31个完全不同的样板 ,其中一些有400多个问题。 这是最好的列表之一。

我几个月前写了这个“清单”,但是直到今天才发表。
今天,我正在寻找hyperapp的路由, 偶然看到了这一点:

Next.js,Razzle,CRA。 为什么要在下一个项目中使用它们。_第3张图片
只需在Github上搜索“ hyperapp”

在您阅读本文时,人们已经在使用越野车启动器来启动垃圾邮件Github。 带有维护者零支持的库的完全无用的“ awesome-lists”将很快出现。

不要为⭐️编写软件。
编写软件以带来新的东西。

我们至少需要标准化样板和构建工具,制作出真正出色的列表并且不要大肆宣传。

不要炒作

您还记得React-IDE吗? 这是个好主意(7.5k⭐)️,但是… 任何真正的产品仍然不存在。

自己对标准化的看法

  • 为特定的生态系统制作一个维护过的 “真棒清单”(即“ really-awesome-react )。 此外,还有很棒的工具包列表。
  • 在真棒列表中突出显示维护级别和受欢迎程度。
  • 忽略任何构建“ Bootstrap与React的另一集成”的尝试。
我研究了许多流行的样板, 甚至构建了一个流行的样板,并且我确信我们应该应对“老式的入门时代”。
另外,一些入门者很棒。 并非所有的启动器都如上所述糟糕透顶。

感谢您的阅读,希望它真的能有所改变。
重新发布本文-让人们停止为恒星编写软件,开始在真正的进步项目上进行协作。
GitHub : @Metnew
推特: @vladimir_metnew

From: https://hackernoon.com/next-js-razzle-cra-why-you-should-use-them-for-a-next-project-a78d320de97f

你可能感兴趣的:(Next.js,Razzle,CRA。 为什么要在下一个项目中使用它们。)