nuysoft / Mock

A simulation data generator
http://mockjs.com
Other
19.53k stars 2.66k forks source link

Random.dataImage函数无法使用了 #222

Open realDuang opened 7 years ago

realDuang commented 7 years ago

Random.image正常,dataImage会在编译阶段fail

Kannnnng commented 7 years ago

不会的,现在都可以继续使用,应该是你自己代码的问题

SilvesterChiao commented 6 years ago

image换成dataImage报错如下 \node_modules\mockjs\dist\mock.js:1476 var Canvas = module.require('canvas') ^ TypeError: module.require is not a function

realDuang commented 6 years ago

这个错跟dataImage无关吧……你module.require不能被识别的问题

o0nsy0o commented 6 years ago

同上,我也是这个错误TypeError: module.require is not a function

Kunduin commented 6 years ago

同报错,当使用dataImage的时候会编译不通过,话说什么叫做module.require不被识别呀。。是只在引这一个一个方法的时候会报错,其他的API都很正常

athrunsun commented 6 years ago

我用nodejs 9.11.2调试了一下,module.require确实是undefined。但是官方文档里面确实有这个方法(810的文档里都有),但是我不太明白它的用法解释:

In order to do this, it is necessary to get a reference to the module object. Since require() returns the module.exports, and the module is typically only available within a specific module's code, it must be explicitly exported in order to be used.

还有一句注释值得注意:

PS:node-canvas 的安装过程实在是太繁琐了,所以不放入 package.json 的 dependencies。

所以即使module.require的问题解决了,我们还需要自己安装canvas这个依赖项。

解决方案

faker.jsfaker.image.dataUri(width, height)替代,是用svg实现的,感觉比mockjs的方案简单了许多。

gavinxgu commented 5 years ago

最新尝试node v10.5.1 mockjs 1.0.1-beta3 module.require is undefined 修改为require后可以正常使用

不过node-canvas安装以后仍然报错, 发现canvas的使用方法已经变了,需要用Canvas.createCanvas(width, height)创建node-canvas对象,修复后可用