使用require()转换服务器端/ PhantomJS的JS脚本

时间:2013-03-04 06:40:59

标签: javascript requirejs packaging phantomjs

尝试在服务器端PhantomJS脚本中使用resemble.js会抛出未定义的错误,并且没有任何日志记录会穿过{object Object}。在幻像/ examples / universe.js文件之后进行图案化,我尝试转动original resemble.js file

(function (_this) {
  _this['resemble'] = function (fileData) {
    ...
  }
}(this));

进入

exports.create = function () {
  (function (_this) {
    _this['resemble'] = function (fileData) {
      ...
    }
  }(this));
};

以及

exports.create = function () {
  resemble = function (fileData) {
    ...
  }
};

首先,悬挂(this)到底有什么用?其次,我该如何记录该对象?最后,包装该文件的正确方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

要从phantomJS中运行,请查看https://github.com/Huddle/PhantomCSS。克隆,你立即启动并运行。如果您不在Windows上,请将phantomjs.exe替换为您系统的正确二进制文件。

您还没有正确地粘贴(this)。无论如何,它是IIFE。函数的第一个参数_this只是最后(this)的范围副本。

您可以通过在函数体中转储_this或在函数体外部记录this来简单地记录它。

另见What is this construct in javascript?Advanced Javascript: Why is this function wrapped in parentheses? [duplicate]

答案 1 :(得分:1)

试试https://github.com/kpdecker/node-resemble Resemble.js的节点端口。