如何让metalsmith运行bash脚本?你能做到吗?
我的构建非常简单,但我想在编译完所有内容后从build.js文件夹中删除一些内容。
var Metalsmith = require('metalsmith'),
copy = require('metalsmith-copy'),
define = require('metalsmith-define'),
markdown = require('metalsmith-markdown'),
permalinks = require('metalsmith-permalinks'),
static = require('metalsmith-static'),
templates = require('metalsmith-templates');
Metalsmith(__dirname)
.source('./pages')
.use(static(require('./config/assets')))
.use(static(require('./config/rootFiles')))
.use(define(require('./config/define')))
.use(markdown())
.use(permalinks())
.use(templates(require('./config/templates')))
.destination('./build')
.build(function (err) {
if (err) {
throw err
}
})那么,如果我在config/leanup.sh中保存了一个bash脚本,那么如何在.build()之后执行它呢?
发布于 2015-03-26 07:40:00
Node js fs utils
如果你只是想删除文件和文件夹,那么Node.js有filesystem工具可以帮你做到:
var fs = require('fs');
// file
fs.unlink('/path/to/filename.txt', callback);
// directory
fs.rmdir('/path/to/dirname', callback);执行bash脚本(或其他命令)
如果您真的想运行bash脚本,那么child_process.exec可能会帮助您。
(示例来自:http://www.dzone.com/snippets/execute-unix-command-nodejs)
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec('./bash_script.sh', puts);发布于 2015-12-29 13:34:23
你可以使用https://github.com/pjeby/gulpsmith和其他gulp插件(例如https://www.npmjs.com/package/gulp-clean)来删除你的文件。
https://stackoverflow.com/questions/29182334
复制相似问题