2016年JavaScript领域中最受欢迎的“明星”们

jopen 7年前
   <p style="text-align: center;"><a href="/misc/goto?guid=4958190462259388048" title="程序员"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/a08e318ff2ebc4ad30d5e6ff0cd93701.jpg" /></a></p>    <p>JavaScript 社区的发展正如盛壮之时的骐骥,—日而驰千里,趋势如长江后浪推前浪。</p>    <p>2016 年已经过去了,你是否会担心错过一些重要的东西?无须担心,<a href="/misc/goto?guid=4958999003089621966">JS.ORG</a> 不久前分享了一篇<a href="/misc/goto?guid=4958999003194402398">博文</a>,为大家回顾了去年主要的趋势。</p>    <p>InfoQ 翻译并整理这篇博文,以飨 JavaScript 的开发者。</p>    <p>JS.ORG 通过比较过去 12 个月里,在 Github 上增加的星标数,告诉你 2016 年的趋势。</p>    <p>在 2015 年,<a href="/misc/goto?guid=4958968605084997344">React</a> 是社区之王,<a href="/misc/goto?guid=4958973395905045282">Redux</a> 在与 <a href="/misc/goto?guid=4958849454641829982">Flux</a> 的大战中获胜。那么,谁是 2016 年的 JavaScript 的新星?</p>    <p>以下图表比较了 Github 在过去 12 个月中增加的星标数量。JS.ORG 分析了 <a href="/misc/goto?guid=4958999003405095251">bestof.js.org</a> 的项目,这是一个与网络平台相关的最佳项目的精选列表。</p>    <p><strong>一. 2016 年最受欢迎的项目</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/48efe42fc73316bb804a14244db18f95.png" /></p>    <p>概述</p>    <p>通过一年中最热门的 10 个项目,由此可以很好地了解 2016 年的 Web 开发环境,因为您会发现:</p>    <ul>     <li>3 个 UI 框架:<a href="/misc/goto?guid=4958857378973396767">Vue.JS</a>、<a href="/misc/goto?guid=4958968605084997344">React</a>、<a href="/misc/goto?guid=4958866372165218034">Angular 2</a></li>     <li>新的 node.js 包管理器:<a href="/misc/goto?guid=4958999003582682021">Yarn</a></li>     <li>构建桌面应用程序的领先解决方案:<a href="/misc/goto?guid=4958875078695602791">Electron</a></li>     <li>快速启动新的 React 项目的解决方案:C<a href="/misc/goto?guid=4958996917562467082">raste React App</a></li>     <li>移动框架:<a href="/misc/goto?guid=4958869360442056133">React Native</a></li>     <li>最著名的 CSS 工具包:<a href="/misc/goto?guid=4958332662969681733">Bootstrap</a></li>     <li>基于函数概念的状态管理库:<a href="/misc/goto?guid=4958973395905045282">Redux</a></li>     <li>强大灵活的图表库:<a href="/misc/goto?guid=4958962064185158312">D3</a></li>    </ul>    <p>以上展现了 2016 年中,JavaScript 表现出了无处不在,功能多样的特性。</p>    <p>而 2016 年的王者是……</p>    <p><a href="/misc/goto?guid=4958857378973396767">Vue.JS</a> 项目在去年的 Github 上获得了超过 25,000 颗星标,将包括 React 和 Angular 的其他框架甩在身后,一骑绝尘。</p>    <p>10 月发布的 Veu.JS 的<a href="/misc/goto?guid=4958999003865685619">版本2</a>,带来了虚拟 DOM 的性能。</p>    <p><a href="/misc/goto?guid=4958857378973396767">Vue.JS</a> 用于大公司(包括阿里巴巴,中国最大的电子商务公司)的生产,所以你可以认为它是一个安全的选择。</p>    <p>它已经有一个相当成熟的生态系统,包括路由(<a href="/misc/goto?guid=4958999003969318554">vue-router</a>)和状态管理库(<a href="/misc/goto?guid=4958976113098745443">Vuex</a>)。</p>    <p>看来 <a href="/misc/goto?guid=4958857378973396767">Vue.JS</a> 采用了最好的 <a href="/misc/goto?guid=4958968605084997344">React</a>(组件方法)和 <a href="/misc/goto?guid=4958319784807616451">AngularJS</a>(模板是 html 代码增强的框架特性)。</p>    <p><strong>二. 前端框架</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/9bc35d965b0113deed337c97b7187af8.png" /></p>    <p>前端框架类可能是 2016 年 <a href="/misc/goto?guid=4958999005389090160">JavaScript 最累</a>的一个牌行榜,几乎每个月都会出现一个竞争者,但是,这推动了创新的步伐。</p>    <p>确切地说,在这个类别中混合了两种类型的项目:</p>    <ul>     <li>完整的框架包含了所有功能,能够创建一个现代的 Web 应用程序(路由、数据提取、状态管理)。<a href="/misc/goto?guid=4958319784807616451">AngularJS</a>、<a href="/misc/goto?guid=4958866372165218034">Angular 2</a>、<a href="/misc/goto?guid=4958999005540161675">Ember</a> 或 <a href="/misc/goto?guid=4958999005658157881">Aurelia</a> 都属于这一类。</li>     <li>更轻量级的解决方案专注于 UI 层,如 <a href="/misc/goto?guid=4958968605084997344">React</a>、<a href="/misc/goto?guid=4958857378973396767">Vue.JS</a>、<a href="/misc/goto?guid=4958999005812682236">Inferno</a>……</li>    </ul>    <p>我们已经提到了总体排名第一的 <a href="/misc/goto?guid=4958857378973396767">Vue.JS</a>,让我们看看其他竞争者。</p>    <p>React 及其竞争者</p>    <p><a href="/misc/goto?guid=4958968605084997344">React</a> 总体排名第二,前端开发者没有谁可以忽略 React 及其丰富的生态系统。</p>    <p><a href="/misc/goto?guid=4958968605084997344">React</a> 如此受欢迎,它激发了很多其他库,旨在采取最好的 React,没有臃肿,提高在浏览器的性能和构建时间。</p>    <p><a href="/misc/goto?guid=4958999005812682236">Inferno</a> 是这个类别中最受欢迎的项目,它声称是 React 最快的替代品。</p>    <p>在我们的排名中,紧跟 Inferno 之后,<a href="/misc/goto?guid=4958999005994964561">Preact</a> 也是 React 的一个不错的替代品。它的生态系统是相当成熟的,例如有一个具有离线功能的 Bolierplates、路由、Compat 模块,以便您可以使用 Preact 项目中的任何现有 React 库。</p>    <p>Angular 1 和2</p>    <p>Angular 项目已经拆分为 2 个存储库,因为 Angular 2 是 Angular 1 的完全重写,即使一些概念保持不变。</p>    <p><a href="/misc/goto?guid=4958866372165218034">Angular 2</a>是用 TypeScript 编写的,并且利用 ES6 提供一个现代和彻底的框架。</p>    <p><a href="/misc/goto?guid=4958319784807616451">AngularJS</a> 项目是 1.x 的分支,它在许多项目中仍然使用,并将继续流行一段时间。</p>    <p>值得一提的是,<a href="/misc/goto?guid=4958999005540161675">Ember</a> 虽然拥有庞大的生态系统,但它的社区并不在前十名。</p>    <p>因此看起来,与其选择“开箱即用”的所有功能的完整框架,2016 年开发商更倾向轻量级的方案,并喜欢组成自己的方案——“点菜”。</p>    <p>在 2016 年调味的更轻的方法,并更喜欢组成自己的解决方案“点菜”。</p>    <p><strong>三. Node.js 框架</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/26545df065494f88533ac63ba7a3cd0d.png" /></p>    <p>2016 年,使用以下解决方案创建和部署 node.js 应用程序从未如此简单:</p>    <ul>     <li><a href="/misc/goto?guid=4958999006156410080">Now</a></li>     <li><a href="/misc/goto?guid=4958999006290210722">Webtask.io</a></li>     <li><a href="/misc/goto?guid=4958999006414604856">Stdlib</a></li>    </ul>    <p>像 <a href="/misc/goto?guid=4958999006538778148">Gomix</a> 这样的项目甚至降低了 node.js 世界的门槛,使得任何人都可以在浏览器中轻松点击几下来编写和共享 node.js 代码。</p>    <p>如果你必须构建一个 web 应用程序,你会选择哪个框架?</p>    <p><a href="/misc/goto?guid=4958999006662315028">Express</a></p>    <p>当你使用 node.js 构建 Web 应用程序时,<a href="/misc/goto?guid=4958999006662315028">Express</a> 通常被视为事实上的 Web 服务器。它的哲学(一个可以使用中间件包扩展的简约核心)是大多数 node.js 开发人员熟悉的。</p>    <p><a href="/misc/goto?guid=4958827254298637858">Koa</a></p>    <p><a href="/misc/goto?guid=4958827254298637858">Koa</a> 的哲学接近 Express,但它是使用 ES6 生成器,以避免有时被称为回调地狱的问题。</p>    <p><a href="/misc/goto?guid=4958826801301812199">Feathers</a></p>    <p><a href="/misc/goto?guid=4958826801301812199">Feathers</a> 是一个非常灵活的解决方案,创建一个“面向服务”的架构,它是一个很好的适合创建 node.js 微服务。</p>    <p><a href="/misc/goto?guid=4958999006922200879">Nodal</a></p>    <p><a href="/misc/goto?guid=4958999006922200879">Nodal</a> 框架以目标无状态和分布式服务连接到 PostgreSQL 数据库。</p>    <p><a href="/misc/goto?guid=4958999007065715860">Keystone</a></p>    <p><a href="/misc/goto?guid=4958999007065715860">Keystone</a> 是我所知得到一个管理客户端并运行得最好的解决方案之一,以便管理来自 MongoDB 数据库的内容。管理界面自动从模型生成,具有所有 CRUD 操作和精细的过滤器。</p>    <p><a href="/misc/goto?guid=4958999007233444486">Sails</a></p>    <p><a href="/misc/goto?guid=4958999007233444486">Sails</a> 是一个完整的 MVC 框架,受 Ruby on Rails 的启发(因此名为 Sails!)。它已经存在了很长时间。它可以与任何类型的数据库(SQL 或无 SQL)良好工作。</p>    <p><a href="/misc/goto?guid=4958837620173308012">Loopback</a></p>    <p><a href="/misc/goto?guid=4958837620173308012">Loopback</a> 是另一个成熟的框架,内置许多函数,包括使用令牌和到任何类型的数据库的连接器的认证。</p>    <p>它的杀手级功能是 API 浏览器功能,允许开发人员以直观的方式检查所有 API 端点,并能检查任何用户的令牌。如果你必须构建一个 API,这绝对是一个不错的选择。</p>    <p><strong>四. React Boilerplates</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/c21a7f24574b805f0d49a08c729c6d4c.png" /></p>    <p>React 是一个伟大的 UI 库,但使用 React 和现代 Web 开发工作流工具需要大量的配置。那么如何开始创建一个应用程序呢?</p>    <p>这是 React 的“Boilerplates”和其他“Starter Kits”提供的答案:</p>    <p><a href="/misc/goto?guid=4958996917562467082">Create React App</a></p>    <p>非死book 通过提供一个称为 <a href="/misc/goto?guid=4958996917562467082">Create React App</a> 的轻量级方法来解决这个需求,这是一个非常方便的启动一个新的 React 项目。</p>    <p><a href="/misc/goto?guid=4958879058460527318">Dan Abramov</a>(Redux 的创造者,现在为 非死book 工作)做了一个伟大的工作,在简单性和功能找到了正确的平衡点。例如,没有花哨的样式解决方案(只是简单的 CSS),没有服务器端渲染,但是所有的一切,都很好地打包了,开发人员的体验非常棒。</p>    <p>与其竞争者的主要区别是,如果使用 <a href="/misc/goto?guid=4958996917562467082">Create React App</a>,它将成为项目的依赖项,所有的魔法是隐藏的,你看到的只是你的应用程序代码。您可以随时升级依赖关系,它并非只是一个起点。</p>    <p><a href="/misc/goto?guid=4958999007514134598">React boilerplate</a></p>    <p>命名为 <a href="/misc/goto?guid=4958999007514134598">React boilerplate</a> 具有您需要的一切,包括 <a href="/misc/goto?guid=4958973395905045282">Redux</a> 和一些漂亮的离线功能,利用 web workers 技术。</p>    <p>它让开发人员创建所谓的渐进式 Web 应用程序(Progressive Web Applications,PWA):离线运行的 Web 应用程序,使用一种名为 Service Worker 的技术,请阅读 NicolásBevacqua 的这篇<a href="/misc/goto?guid=4958999007652333884">文章</a>。</p>    <p><a href="/misc/goto?guid=4958999007763604188">Next.js</a></p>    <p><a href="/misc/goto?guid=4958999007763604188">Next.js</a> 由 <a href="/misc/goto?guid=4958999007887811463">Zeit</a> 创建,具有可用于创建通用应用程序的服务器端呈现功能(或同构应用程序,如我们在 2015 年所说),也就是说客户端和服务器端运行的应用程序使用相同代码。</p>    <p><strong>五. Mobile</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/c6000a748794f1cd076a9bfe0c871696.png" /></p>    <p>JavaScript 无处不在,你可以使用技术 Web 开发人员已知的任何技术(HTML、JavaScript、CSS)构建移动应用程序。</p>    <p><a href="/misc/goto?guid=4958869360442056133">React Native</a></p>    <p>使用 React Native,你可以从相同的代码库使用 React 开发人员熟悉的概念构建 iOS 和 Android 真正的原生移动应用程序。要了解有关构建 iOS 和 Android 应用程序的更多信息,请阅读<a href="/misc/goto?guid=4958996918024621333">这本教程</a>。</p>    <p>其他基于 Cordova 的解决方案,依靠 Webview 来渲染屏幕,并且不如原生解决方案那么高效。 “一次编写,随处运行”,这是开发人员的梦想成真!</p>    <p><a href="/misc/goto?guid=4958821868446522552">Ionic</a></p>    <p>Ionic 是“混合”应用程序概念的先驱。在后台中,它基于 Cordova 访问移动设备功能。这是一个非常成熟的大型生态系统。</p>    <p><a href="/misc/goto?guid=4958999008099230280">NativeScript</a></p>    <p><a href="/misc/goto?guid=4958999008099230280">NativeScript</a> 旨在实现与 <a href="/misc/goto?guid=4958869360442056133">React Native</a> 相同的目标(使用 Web 技术构建真正的移动应用程序)。它有两种种风格:NativeScript Core 和 NativeScript + Angular 2。</p>    <p>前瞻</p>    <p>在 2017 年密切关注的一个项目:<a href="/misc/goto?guid=4958999008234348192">Weex</a>,一个构建在 <a href="/misc/goto?guid=4958857378973396767">Vue.JS</a> 之上的移动跨平台 UI 框架。</p>    <p><strong>六. Compilers</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/03262892c2a7a240d5e0c463e9df27aa.png" /></p>    <p>我们在这里谈论生成任何语言(或 JavaScript 的任何变体)的 JavaScript 的编译器(或“transpilers”)。它们将代码转换为浏览器(或 node.js)可以执行的“标准 JavaScript”代码。</p>    <p>例如,编译器允许开发人员使用最新版本的 JavaScript(ES6)编写代码,而无须担心浏览器的支持。</p>    <p><a href="/misc/goto?guid=4958525065789866060">TypeScript</a></p>    <p>最时髦的转换器是 <a href="/misc/goto?guid=4958525065789866060">TypeScript</a>,它为 Web 开发人员提供了 Java 和C#开发人员使用的静态类型。事实上,<a href="/misc/goto?guid=4958866372165218034">Angular 2</a>使用 TypeScript 增加了更多的牵引力。在 JavaScript 中使用类型有优缺点,阅读这些文章,使你自己的观点:</p>    <ul>     <li><a href="/misc/goto?guid=4958999008415098003">你可能不需要 TypeScript</a></li>     <li><a href="/misc/goto?guid=4958999008542969354">TypeScript:缺失的介绍</a></li>    </ul>    <p><a href="/misc/goto?guid=4958877845976897237">Babel</a></p>    <p><a href="/misc/goto?guid=4958877845976897237">Babel</a> 与 Webpack 一起,几乎成为编译 ES5 代码和标准 JavaScript 中的库(如 React(JSX))使用的模板的标准。最初创建用于编译 ES6,它成为一个更通用的工具,可以完成任何代码转换,拜一个系统的插件所赐。</p>    <p><a href="/misc/goto?guid=4958999008700380509">Flow</a></p>    <p><a href="/misc/goto?guid=4958999008700380509">Flow</a> 不是一个编译器,它是一个用于“注释”JavaScript 代码的静态类型检查器。基本上在代码库中使用 Flow 意味着添加注释来描述期望的类型(点<a href="/misc/goto?guid=4958999008831055911">阅读</a>更多了解使用 Flow 编写模块)。</p>    <p>它在 非死book 项目的代码源内使用。因为 非死book 成为开源世界的主要角色之一(像 <a href="/misc/goto?guid=4958968605084997344">React</a>、<a href="/misc/goto?guid=4958869360442056133">React Native</a>、<a href="/misc/goto?guid=4958849454641829982">Flux</a>、<a href="/misc/goto?guid=4958853388420474411">Immutable</a>、<a href="/misc/goto?guid=4958834376951638365">Jest</a> 等项目),这意味着很多。</p>    <p><a href="/misc/goto?guid=4958524591480500361">CoffeeScript</a></p>    <p>多年来,<a href="/misc/goto?guid=4958524591480500361">CoffeeScript</a> 由于其精简语法(灵感来自 Python 和 Ruby 语法),成为最受欢迎的编译器,但它在 2016 年不太流行,很多开发人员从 CoffeeScript 迁移到 ES6 与 Babel。</p>    <p><strong>七. Build Tools</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/4bd59957f5ae1682dfcf143125d9bb2a.png" /></p>    <p>在 2016 年,很难想象一个没有任何构建过程的 Web 应用程序。通常需要一个构建过程来编译模板和优化资源,以便在生产环境中运行 Web 应用程序。</p>    <p><a href="/misc/goto?guid=4958999009084926641">Webpack</a></p>    <p><a href="/misc/goto?guid=4958999009084926641">Webpack</a> 是用于构建单页应用程序的主要工具,它与 React 生态系统一起使用。新发布的版本 2 带来了一些令人鼓舞的增强功能(查看这份<a href="/misc/goto?guid=4958999009213203106">介绍</a>)。</p>    <p><a href="/misc/goto?guid=4958825205695716034">Gulp</a></p>    <p><a href="/misc/goto?guid=4958825205695716034">Gulp</a> 是一个通用的任务运行器,可以用于涉及文件系统的任何类型的自动过程,因此它不是 Webpack 或 Browserify 的直接竞争者。</p>    <p>像 <a href="/misc/goto?guid=4958524645657745150">Grunt</a> 一样,Gulp 通过聚合工作:你可以要求它缩小和连接资源列表,但是它不会像 <a href="/misc/goto?guid=4958999009084926641">Webpack</a> 或 <a href="/misc/goto?guid=4958830652694960670">Browserify</a> 那样处理模块化 JavaScript 本身。</p>    <p>然而,它可以很好地与 webpack 一起工作,即使开发人员倾向于使用 npm 脚本。</p>    <p><a href="/misc/goto?guid=4958830652694960670">Browserify</a></p>    <p><a href="/misc/goto?guid=4958830652694960670">Browserify</a> 由于其简单性,受到了 node.js 开发人员喜爱。</p>    <p>基本上,它需要几个 node.js 包作为输入,并为浏览器生成一个单一的“构建”文件作为输出。但是似乎一个更有见地的工具像 <a href="/misc/goto?guid=4958999009084926641">Webpack</a> 是一个更好地适合 Web 应用程序工作流。</p>    <p>前瞻</p>    <p>2017 年的模块捆绑包,强调性能:汇总(<a href="/misc/goto?guid=4958975739586912540">rollup</a>)。</p>    <p>它使用 ES6 模块与一个称为树摇动(Tree shaking)功能创建捆绑包,只包括您在代码中使用的功能,而不是搬运完整的库。</p>    <p><strong>八. Testing Frameworks</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/f85106a082363d9375e22307fa183b8c.png" /></p>    <p>最著名的两个测试框架是 <a href="/misc/goto?guid=4958830654387613508">Jasmine</a> 和 <a href="/misc/goto?guid=4958968603421901612">Mocha</a>,但最近的两个项目在 2016 年有更多的牵引力:<a href="/misc/goto?guid=4958999009676297712">AVA</a> 和 <a href="/misc/goto?guid=4958834376951638365">Jest</a>。</p>    <p><a href="/misc/goto?guid=4958999009676297712">AVA</a></p>    <p><a href="/misc/goto?guid=4958999009676297712">AVA</a>,由多产的 <a href="/misc/goto?guid=4958999009832728410">Sindre Sorhus</a> 创建的强调性能(并行测试)和 ES6。 AVA 的语法接近标准测试框架,如 <a href="/misc/goto?guid=4958984395013750561">Tape</a> 和 <a href="/misc/goto?guid=4958999010000672203">Node-tap</a>。</p>    <p><a href="/misc/goto?guid=4958834376951638365">Jest</a></p>    <p><a href="/misc/goto?guid=4958834376951638365">Jest</a>,另一个 非死book 项目,在过去的几周里得到了很大的牵引力。它在 React 社区中是众所周知的,越来越多的人转向 Jest(阅读<a href="/misc/goto?guid=4958999010140363031">这篇故事</a>来了解),它可能成为 2017 年最流行的测试框架。</p>    <p>Jest 有内置的良好的模拟能力,而其他测试框架通常依赖于像 <a href="/misc/goto?guid=4958527979825761315">Sinon.JS</a> 这样的库。</p>    <p><strong>九. IDE</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/e55a2b39ab00d8131dc94442867b98a7.png" /></p>    <p>关于 IDE(Integrated Development Environment,集成开发环境),值得一提的是,两个最流行的 IDE 是使用 Web 技术开发的开源项目。</p>    <p><a href="/misc/goto?guid=4958972296774122390">Visual Studio Code</a></p>    <p>在我们的结果中,Microsoft 凭借 <a href="/misc/goto?guid=4958972296774122390">Visual Studio Code</a> 遥遥领先。</p>    <p>它提供了一个与 <a href="/misc/goto?guid=4958525065789866060">TypeScript</a> 和 node.js 的很好的集成。一些开发人员提到关于开发速度,很感谢 IntelliSense 功能(高亮和自动完成的混合)。</p>    <p>在同一句话中提到“开源”和“微软”不再矛盾了!</p>    <p><a href="/misc/goto?guid=4958832861167207492">Atom</a></p>    <p><a href="/misc/goto?guid=4958832861167207492">Atom</a> 是由 Github 推动的、并且由 <a href="/misc/goto?guid=4958832861167207492">Electron</a> 构建(像其他一些桌面应用程序,包括 Slack 桌面客户端),并非远远落后 <a href="/misc/goto?guid=4958972296774122390">Visual Studio Code</a>。关于 Atom 的一个有趣的事实:它的主要语言是 CoffeeScript!</p>    <p><strong>十. Static Site Generators</strong></p>    <p style="text-align:center"><img alt="2016年JavaScript领域中最受欢迎的“明星”们" src="https://simg.open-open.com/show/69aa5e4a85c543542ea9bd64579f24f0.png" /></p>    <p>静态网站生成器(Static site generators,SSG)是生成一系列 .html、.css 和 JavaScript 文件的工具,您可以在任何简单的 Web 服务器(Apache 或 NGNX)上部署,而不必大惊小怪,或者设置数据库或任何网络框架。正如 <a href="/misc/goto?guid=4958999010447664524">Gatsby</a> 网站所说:</p>    <blockquote>     <p>就像 1995 年那样建立网站。</p>    </blockquote>    <p>静态网站具备快速性、鲁棒性和易维护性。</p>    <p>SSG 非常受欢迎,因为有很多很好的解决方案来主持静态网站免费:</p>    <ul>     <li><a href="/misc/goto?guid=4958852074554327398">Github pages</a></li>     <li><a href="/misc/goto?guid=4958999010588313199">Gitlab pages</a></li>     <li><a href="/misc/goto?guid=4958999010694069285">Netlify</a></li>     <li><a href="/misc/goto?guid=4958999010781961569">Surge</a></li>     <li><a href="/misc/goto?guid=4958999010886942459">Now static</a></li>    </ul>    <p><a href="/misc/goto?guid=4958868590869741515">Hexo</a></p>    <p>在 2016 年,使用 node.js 构建的最流行的 SSG 是 <a href="/misc/goto?guid=4958868590869741515">Hexo</a>。它是一个彻底的 SSG,接近 CMS 系统,可用于构建一个博客,如 Wordpress。它有很多功能,包括国际化插件。</p>    <p><a href="/misc/goto?guid=4958999010447664524">Gatsby</a></p>    <p>新来的 <a href="/misc/goto?guid=4958999010447664524">Gatsby</a> 是一个非常有趣的解决方案,它从竞争对手脱颖而出,因为它使用 React 生态系统来生成静态 html 文件。事实上,您可以组合 React 组件,Markdown 文件和服务器端渲染使它非常强大。</p>    <p><strong># 总结</strong></p>    <p>尽管存在 JavaScript 疲劳™和戏剧(记住“<a href="/misc/goto?guid=4958999011051206284">左键门</a>”),但对于社区而言,随着像 <a href="/misc/goto?guid=4958857378973396767">Vue.JS</a> 和 <a href="/misc/goto?guid=4958869360442056133">React Native</a> 项目的兴起,以及像 <a href="/misc/goto?guid=4958999003582682021">Yarn</a> 或 <a href="/misc/goto?guid=4958996917562467082">Creat React App</a> 的新项目,2016 年仍然不啻为一个伟大的年份。</p>    <p>我们一直在谈论的项目,2016 年在 Github 得到了吸晴,但真正重要的是开发者的满意度。所以,如果你想要一个更定性的方法,上 Sacha Greif 查看 <a href="/misc/goto?guid=4958999011204755705">JavaScript</a> 调查的结果,它收集了超过9,000 的反馈。</p>    <p>以下是我的年度十大选择,代表了在 2016 年我所喜欢的项目和想法,将在 2017 年持续增长:</p>    <ul>     <li><a href="/misc/goto?guid=4958857378973396767">Vue.JS</a>:势头强劲,不会停止</li>     <li><a href="/misc/goto?guid=4958875078695602791">Electron</a></li>     <li><a href="/misc/goto?guid=4958996917562467082">Create React App</a></li>     <li><a href="/misc/goto?guid=4958869360442056133">React Native</a></li>     <li><a href="/misc/goto?guid=4958999010447664524">Gatsby</a></li>     <li><a href="/misc/goto?guid=4958999003582682021">Yarn</a>: 一个快速,可靠和安全的依赖管理,可以取代 npm,点<a href="/misc/goto?guid=4958999011359831453">此处</a>了解 node.js 包管理器的状态</li>     <li>渐进式 Web 应用程序</li>     <li>Node.js 微服务使用像 <a href="/misc/goto?guid=4958867323246690255">Now</a> 这样的托管解决方案很容易部署</li>     <li><a href="/misc/goto?guid=4958965475550930336">Node.js</a> 的演变:最新版本对 ES6 语法提供良好的支持</li>     <li>还有一个选择是 <a href="/misc/goto?guid=4958965475550930336">GraphQL</a>:据我了解,GraphQL 将有大动作</li>    </ul>    <p>来自: <a href="/misc/goto?guid=4958999011533264960" id="link_source2">InfoQ</a></p>