Purescript 0.12入门运行项目遇模块缺失错误求助
解决PureScript 0.12中找不到Control.Monad.Eff模块的问题
嘿,我来帮你搞定这个报错!你遇到的问题其实是PureScript 0.12版本的一个重大变更导致的——旧的Eff系统被完全重构,换成了新的Effect系统,原来的Control.Monad.Eff和Control.Monad.Eff.Console模块已经被移除了,所以才会出现找不到模块的错误。
下面是具体的修复步骤:
1. 更新项目依赖
pulp init生成的默认项目骨架可能还在使用旧版本的依赖,我们需要替换成适配0.12的新依赖:
- 先卸载旧的依赖:
bower uninstall purescript-eff purescript-console --save - 安装新的对应依赖:
bower install purescript-effect purescript-console --save
2. 修改Main.purs的代码
打开项目里的src/Main.purs,把旧的导入语句和类型签名替换成新的:
原代码(旧版本):
module Main where import Prelude import Control.Monad.Eff (Eff) import Control.Monad.Eff.Console (CONSOLE, log) main :: Eff (console :: CONSOLE) Unit main = log "Hello, World!"
修改后的代码(适配0.12):
module Main where import Prelude import Effect (Effect) import Effect.Console (log) main :: Effect Unit main = log "Hello, World!"
3. 重新运行项目
现在执行pulp run、pulp test或者pulp build,应该就能正常工作了!
补充说明一下:PureScript 0.12的Effect系统相比旧的Eff更简洁易用,后续写代码的时候记得用Effect相关模块代替原来的Eff模块哦。你的pulp 12.2.0版本是完全兼容PureScript 0.12的,这点不用担心。
内容的提问来源于stack exchange,提问作者Oleg Dmytriienko
相关产品推荐
相关产品推荐

