设置纯脚本环境

Setting up a Purescript Enviornment

所以我想尝试使用 Purescript,但我一直无法克服实际设置环境以开始玩游戏的困难。似乎关于该主题的大多数参考资料都已过时在这一点上也是如此。无论如何,我已经尝试了无数 pulp init -> bower install -> pulp psci 并且,尽管导致 psci 的步骤声称有效,但导入序曲或任何其他其他基本模块失败。因此,psci连数字“1”是什么都认不出来了。此外,运行 pulp psci

时出现以下错误

发现错误: 在 bower_components/purescript-lists/src/Data/List/ZipList.purs 第 69 行,第 11 列 - 第 69 行,第 11 列

无法解析模块: unexpected "\n ZipList 不是绑定的。任何实现都会违反关联律。\n\n 可能的替代方案:\n Data.List.List\n Data.List.Lazy.List\n” 期望没有缩进或输入结束

有关详细信息,请参阅 https://github.com/purescript/purescript/wiki/Error-Code-ErrorParsingModule, 或提供与此错误相关的内容。

发现错误:

无法解析外部模块:

bower_components/purescript-foldable-traversable/src/Data/Foldable.js

有关详细信息,请参阅 https://github.com/purescript/purescript/wiki/Error-Code-ErrorParsingFFIModule, 或提供与此错误相关的内容。

从您的错误消息来看,您的编译器版本对于已安装的库版本而言似乎已过时。最新版本是 0.9.3,可通过 npm 获取/二进制文件在 GitHub 上/发布在 Hackage 等

所以我实际上是今天在几小时前安装的新 linux 机器上完成的。希望对你有用。

首先我安装了nvm来管理不同的节点版本。我在不同的地方读到过一些人遇到过 purescript 在 node v6 上运行不佳的问题,所以我选择了 node v5。 (这纯粹是轶事 - 我自己还没有 运行 进入这样的问题。)无论如何 nvm 是个不错的主意,以防你仍然 运行 进入问题;切换节点版本可能会有所帮助。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

nvm install 5

然后我用npm安装了purescript、pulp和bower

npm install -g purescript
npm install -g pulp
npm install -g bower

然后我为一个纯脚本项目创建了一个新目录。然后我用bower安装了purescript-psci-support

bower install purescript-psci-support --save

pulp psci 现在就像一个魅力。是的,它识别数字 1。:)

$ pulp psci
PSCi, version 0.9.3
Type :? for help

> 1
1

希望对您有所帮助。

psc-package 是你在 2019 年的做法,不要使用 bowerpurs

您有一些选择:

  1. 全局安装工具
  2. 在本地安装工具(每个项目)

使用 npm 运行 this

全局安装工具
npm i -g purescript psc-package

然后,创建一个新项目

cd /tmp/my-new-awesome-purescript-project
psc-package init
psc-package install psci-support # so that the REPL works

您现在可以开始回复了

psc-package repl

备注

  • 您不必使用 npm!
  • 您可以使用 npm 而不要全局安装:
cd /tmp/my-awesome-npm-based-purescript-thing
npm init -y
npm install --save purescript psc-package
psc-package install psci-support

然后将其添加到您的 package.json,这样您就可以 运行 使用 npm run 的工具:

"scripts": {
  "build": "psc-package build",
  "repl": "psc-package repl"
}

这样做的好处是每个项目可以有不同的版本,如果您提交 package-lock.json 这将存储在 repo 中。

此外,您存储库的用户不需要安装 purescript 或 psc-package,因为 npm i 会处理这些。