Metalsmith.js:如何构建与构建脚本相同的目录?

时间:2014-08-25 06:03:11

标签: javascript node.js metalsmith

我对金属匠来说是全新的。我一直在关注本教程:http://www.robinthrift.com/post/metalsmith-part-1-setting-up-the-forge/

我想将我的网站构建到我的项目的根目录(与构建脚本相同的目录)。我想这样做是因为我希望github页面可以很好地发挥它。但是当我尝试构建时,我收到此错误:错误:EBUSY,资源忙或已锁定

这是我的目录结构:

  • project_folder /
    • _site-SRC /
      • 的index.html
    • node_modules
    • build.js
    • 的package.json

这是我的build.js来源:

var Metalsmith = require("metalsmith");

Metalsmith(__dirname)
    .source("_site_src")
    .destination(".")
    .build();

我希望我的项目目录看起来像:

  • project_folder /
    • _site-SRC /
      • 的index.html
    • node_modules
    • build.js
    • 的package.json
    • 的index.html

我不知道自己做错了什么。我感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

错误消息:

  

错误:EBUSY,资源繁忙或已锁定

似乎是文件锁定/使用中的错误。 (我不熟悉Node.js错误)

我认为当Metalsmith试图清理构建文件夹(这是你的解决方案文件夹,这是一个非常糟糕的主意)时会发生这种情况。默认情况下处于启用状态,但可以将其关闭。

要关闭它,请使用:

.clean(false)

在你建立之前。


但是如果从源文件夹中删除项目,则不会从构建文件夹中删除这些项目。您可以通过自定义清理脚本或插件来处理此问题。

我对github页面没有经验,但我认为应该有更好的替代方法来避免这个问题。

您可以从index.html文件的项目文件夹中为构建文件夹添加符号链接。