受到中间人的启发,此Node.js工具链用砖块和一系列插件编写,以允许静态Web应用程序快速创作。
这里的重点是快速开发和部署在CSS或JavaScript上更重的应用程序,这是利用允许打字量最少的工具完成工作的工具(例如,较少的,手写笔,Coffeescript,Jade)。最后,要优化文件管理,以便您的应用尽快加载(大概是通过某些CDN)。
首先,您需要安装Systatic服务器。它实际上只是一个带有许多预定义路径和模板的砖瓦+奴役服务器。
npm install systatic -g
systatic new my_proj
cd my_proj
systatic
最后一个命令运行服务器,默认情况下,端口3000(例如砖块,您可以使用--port更改端口)。
默认生成的项目将带有config.json文件。该文件定义了各种源和插件组合。通常,您应该只遵循默认设置,但是如果您想更改任何内容(例如,将JavaScripts路由从/javascripts更改为/js )更改此文件。
由于要点是生成静态站点,因此您运行的下一个命令将是build 。这将消除对Nodejs之类的应用程序服务器的需求,并允许您将静态文件丢弃在CloudFront之类的地方。
它命令静态站点构建为阶段,类似于Maven等较大的构建系统。
阶段(执行阶段执行每个阶段):
选择一个阶段将运行所有附加的插件,直到和包括该阶段。
systatic merge
清洁输出目录,构建HTML资源,构建资产并将其合并为最小文件。
systatic test
做同样的事情,但随后还运行任何可选的静态集成测试(当前没有实现,但考虑诸如Qunit之类的东西)
使用该生成的静态内容,接下来,您将需要部署到某些服务器,git reto,cdn ...等等。
systatic publish
我正在考虑将硬编码的插件重新实现与NPM插件一起使用,该插件将配置为每个项目。这是为了允许第三方插件将自己的阶段添加到构建/渲染工具链中。
当前的想法:
一个示例可能是,如果某人想添加一个函数以将用作CSS的图标集中到精灵中,并将这些信息传递到下一个操作中(将绑定到压缩阶段)。