【发布时间】:2019-06-30 20:28:55
【问题描述】:
通过pulp repl运行时是否可以使所有节点模块可用?似乎有些仅在通过pulp run 调用时才有效。
我正在遵循 Purescript Book 中的模式:https://github.com/paf31/purescript-book/blob/master/text/chapter12.md
exports.fooImpl = function(onSuccess, onFailure) {
return function() {
require('some-lib').doThing(function(error, data) {
if (error) onFailure(error.code)()
else onSuccess(data)();
}
}
}
纯脚本定义:
foreign import fooImpl
:: Fn2
(String -> Effect Unit)
(ErrorCode -> Effect Unit)
(Effect Unit)
foo:: (Either ErrorCode String -> Effect Unit) -> Effect Unit
foo path k =
runFn3 readFileImpl
path
(k <<< Right)
(k <<< Left)
现在如果我跳进 REPL
pulp repl
并尝试调用我的函数,当我尝试调用所需的库时出现错误。 .xxx is not a function
但是,如果我通过pulp run 运行,一切都会按预期运行,并且调用节点库函数没有问题。
同样,如果我运行节点 repl 并直接调用库,我同样不会遇到任何问题。
有趣的是,并非所有节点库都有这个问题。像fs 这样的内置插件工作正常,但第三方插件在repl 中有问题。
有没有办法让这些库在 REPL 中运行时可用?
【问题讨论】:
标签: purescript