运行purescript示例时出错

时间:2018-05-26 07:12:08

标签: purescript

我试图从简单的" Hello World"开始学习purescript。来自" Purescript by Example"。 发行"纸浆运行"抛出此错误:

* Building project in /home/peter/devel/purescript/my-project
Error found:
at bower_components/purescript-psci-support/src/PSCI/Support.purs line     21, column 1 - line 21, column 1

  Unable to parse module:
  unexpected "else"
  expecting declaration or end of input

purs的版本为0.11.7,Pulp的版本为12.2.0。

我做错了什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

最近发布的PureScript 0.12引入了重大变化。几个新的软件包版本不适用于较旧的编译器。如果你想保持0.12之前,并且你正在使用凉亭,那么就这样做你的项目:

  1. 删除bower_components目录中的所有内容。
  2. 将bower.json中的所有软件包版本降级到0.12之前的版本,例如prelude 3.2.0,console 3.0.0和psci-support 3.0.0。你可以使用Pursuit并查看GitHub上较旧的bower.json文件来找出这些版本。
  3. 运行bower install
  4. 运行pulp build
  5. 或者,您可以使用PureScript Version Manager升级到0.12。此时,npm上没有0.12。为此,您可以关注these installation instructions,但简而言之就是:

    1. 卸载旧编译器:npm uninstall -g purescript
    2. 安装PSVM:npm install -g psvm
    3. 下载0.12:psvm install-latest
    4. 安装0.12:psvm use v0.12.0
    5. 将PSVM的bin目录添加到Windows上的C:\Users\<username>\.psvm\current\bin PATH。确保使用此新PATH变量更新当前会话。
    6. 测试新的编译器:purs --version

答案 1 :(得分:0)

我正在通过示例工作PureScript,今天遇到了同样的问题。我偶然发现了issue 3367,在那儿gabejohnson将我们引到了博客文章Working with 0.11.7 in a 0.12 world

长话短说,就像erisco所说的那样,PureScript 0.12似乎引入了重大更改,如果要保持在0.11.7上,我们应该使用psc-package而不是bower(因为制浆不起作用)目前使用PureScript 0.12,而Bower给团队带来了依赖管理问题。

您可以使用the binary或使用npm install -g psc-package安装psc-package。

此后,当您使用pulp --psc-package init初始化新项目时,您将需要告诉pulp使用psc-package。最后,使用psc-package install lists安装列表包。

请记住,使用psc-package时,软件包没有前缀purescript-,因此您只需输入软件包名称即可。

这就是让我回到正轨的原因,希望对您有帮助。