100行搭建一个node.js简单的静态站点生成器
最近我的一个同事想开一个博客,问我有没有什么建议。在研究了少量静态站点生成器和博客引擎后,我觉得 Hugo 是个很不错的选择。然而,我同事还有少量其它需求,比方想让博客都有自己设置 URL 以及自己设置 CSS 主题。尽管用 Hugo 也能实现这些要求,但是我还是决定跳过学习使用 Hugo 这部分,看看假如我同事已经有随时可用的 HTML 而且在 HTML 中写博客没有问题,是否创立一个很简单的静态站点生成器。
接下来就教你使用 node.js >= 8.11.x 创立自己的静态站点生成器。我们首先设置项目:
npm init
npm i --save-exact bluebird chokidar fs-extra mustache
mkdir src
mkdir public
首先我们问一个问题——为什么需要静态站点生成器?答案是实际上你并不是很需要它。假如你的博客流量很小,只要要手工编写 HTML 页面而后发布就行了。实际上,在服务器端编程兴起之前,大部分 web 发布都是通过这种方式完成的。然而,假如你已经有了少量页面和内容,修改所有页面的共有部分(比方页脚)会很麻烦。因而,假如我们能有某种简单的模板引擎,可以分离出共有内容并将其插入需要的位置,那就再好不过了。
在讲解模板引擎前,首先设置我们的网站。我们会在项目根 src(当前网站所在的位置)和 public(包含我们生成的网站)下创立 2 个文件夹。将 src 的内容复制到 public,在你的项目根下创立如下 index.js:
const Promise = require("bluebird");
const fse = require("fs-extra");
Promise.resolve().then(async () => {
await main();
});
const main = async() => {
await generateSite();
};
const generateSite = async() => {
await copyAssets();
};
const copyAssets = async() => {
await fse.emptyDir("public");
await fse.copy("src", "public");
};
通过 node index.js 运行该脚本,而后坐等胜利的喜悦就完事儿了。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 100行搭建一个node.js简单的静态站点生成器
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 100行搭建一个node.js简单的静态站点生成器