如何让html-snapshots工作?

时间:2013-12-17 20:57:57

标签: javascript node.js installation npm

我只想尝试html-snapshots。这应该很简单,对吧?

这就是我的开始:

npm install html-snapshots

这就是我所需要的,对吧?这是我的snapshots.js文件:

var htmlSnapshots = require('html-snapshots');
htmlSnapshots.run({
    source: "sitemap.xml",
    hostname: "localhost",
    outputDir: "snapshots",
    outputDirClean: true,
    selector: "#results-widget"
});

并运行它:

node snapshots.js

但是没有:

module.js:340
    throw err;
          ^
Error: Cannot find module '.\robots'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.module.exports.create (C:\webdev\node_modules\html-snapshots\lib\input-generators\index.js:38:16)
    at Object.module.exports.run (C:\webdev\node_modules\html-snapshots\lib\html-snapshots.js:42:39)
    at Object.<anonymous> (C:\webdev\snapshots.js:2:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

跆拳道?

其他信息......

这是html-snapshots.js的一部分:

var inputFactory = require("./input-generators");
...
run: function(options, listener) {
    ...
    var inputGenerator = inputFactory.create(options.input);
    ...
    result = inputGenerator.run(options, (function(options, notifier){

此外,html-snapshots\lib\input-generators文件夹包含文件robots.js

1 个答案:

答案 0 :(得分:1)

它看起来像html-snapshots\lib\input-generators\index.js文件中的问题 - 它在Linux系统上运行正常但在Windows上失败(path.sep已用于构建模块名称)

问题是它应该加载'./robots'模块而不是'.\robots'

快速修复是更新html-snapshots\lib\input-generators\index.js档案 - 第38行。

更改行:

result = require(file);

于:

result = require(path.join(__dirname, file));

它会正常工作。我希望这会有所帮助。