热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

TL;DR:请勿编写和使用自定义启动器。CRA核心普遍性Razzle亲爱的开发人员,请停止编写和使用“入门程序”。起动器(阵营起动-KIT

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

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多个问题 )。

初学者在哪里出现?

我认为“样板时代”以来约曼已经启动-发电机的样板。 让我澄清一下: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插件,大多数入门者都具有所有功能。 这会导致,肿,难以理解,但最重要的是-无法使用的启动器。 特别是对于那些寻找不太复杂和轻量级内容的开发人员。

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

请你停下来!

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

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

只需在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



推荐阅读
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • andr ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 深入解析 Vue 的 Transition 组件与第三方动画库的结合使用
    本文详细介绍了 Vue 中的 Transition 组件,探讨其内置类名机制、触发时机及自定义类名的应用。同时,结合 animate.css 和 GSAP 等第三方库,展示了如何实现复杂的动画效果。 ... [详细]
  • 探讨如何优化 npm 构建过程,提升开发效率,减少构建时间,并介绍自动化部署的最佳实践。 ... [详细]
  • npm run dev后报错 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 深入解析ES6至ES8的新特性与应用
    本文详细介绍了自2015年发布的ECMAScript 6.0(简称ES6)以来,JavaScript语言的多项重要更新,旨在帮助开发者更好地理解和利用这些新特性进行复杂应用的开发。 ... [详细]
author-avatar
北冥其名
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有