为什么hexo的文件夹结构在开发和生产中会与hexo不同?

时间:2018-10-20 12:36:20

标签: node.js hexo

我是nodejs的新手,我有一个关于在nodejs中构建的博客系统的以下问题,其名为hexojs,此博客框架在开发中的文件结构如下:

enter image description here

您可以看到主要的源代码在lib文件夹中。出于贡献的目的,您必须遵循以下说明(如HERE所示):

$ git clone https://github.com/<username>/hexo.git
$ cd hexo
$ npm install
$ git submodule update --init

但是在实际构建和部署hexo博客时,文件结构更改为以下内容:

enter image description here

要在本地系统上构建产品,必须运行以下命令(如 HERE 所示):

$ npm install hexo-cli -g
$ hexo init blog
$ cd blog
$ npm install
$ hexo server

我的问题是,为什么hexo的开发版本和生产版本中的文件夹结构不同?同样在生产版本中,hexo的源代码到底在哪里?

1 个答案:

答案 0 :(得分:1)

Hexo是使用node.js构建的命令行实用程序。它基本上是全局安装的节点模块。

您的博客也是节点模块。您可以看到与hexo的源代码的相似之处:您的博客和hexo都包含package.jsonnode_modules

但是您的博客的源代码是由hexo 生成的。此过程称为 scaffolding (脚手架),该过程为您的博客构建了一个基本结构,可让您进一步在此基础上进行构建。

这是您造成困惑的地方:您误以了十六进制的生产版本(由hexo init blog生成),这是一个完全不同的概念。在这种情况下,生产构建意味着发布到npm的hexo版本,供最终用户在生产中使用。

文件夹结构的不同可以通过每个模块的不同用途来解释:hexo需要执行脚手架,而您的博客需要显示一些帖子。例如hexo有一个test文件夹,它在脚手架过程中执行单元测试,而您的博客不需要任何自动化测试。

可以在npm软件包的全局安装文件夹中找到hexo的源代码:/usr/local/lib/node%USERPROFILE%\AppData\Roaming\npm\node_modules,具体取决于您的平台。