在 NixOS 上开始使用 purescript 需要帮助
Need help on start using purescript on NixOS
我正在尝试在 NixOs
上使用 purescript
设置 hello world
项目并有几个问题,
- Official
purescript
网站推荐通过 npm
安装,但没有 nixos.nodePackages.purescript
,而是我在 nixpkgs
中找到了至少 2 个变体
- nixos.purescript
- nixos.haskellPackages.purescript
有什么不同?
- 官方网站通过
npm
推荐 pulp
和 bower
,但只有 nodePackages.bower
可用,并且有未记录的 psc-package
。
处理纯脚本包的nix
方法应该是什么?
- 官方网站上的示例代码(参见下面的
hello.purs
)甚至无法编译,
有这些错误。
$ purs compile hello.purs
Error found:
at hello.purs line 1, column 1 - line 1, column 1
Unable to parse module:
unexpected "import"
expecting "module"
我在代码中添加了module Hello
,但还是失败了。
$ purs compile hello.purs
Error 1 of 2:
in module Hello
at hello.purs line 2, column 1 - line 2, column 15
Module Prelude was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
Error 2 of 2:
in module Hello
at hello.purs line 3, column 1 - line 3, column 39
Module Control.Monad.Eff.Console was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
正确的工作流程应该如何?
目标是用一个 hello.purs
来实现最小的示例项目
运行 在网络浏览器中。
这是hello.purs
module Hello where
import Prelude
import Control.Monad.Eff.Console (log)
greet :: String -> String
greet name = "Hello, " <> name <> "!"
main = log (greet "World")
如果您还可以为 nix-shell
提供 shell.nix
或为 nix-build
提供 default.nix
,那将非常有帮助。
找到这个 2 岁的 guild,我正在尝试,但我仍然没有找到所有问题的答案。
- nixos.purescript 只是 nixos.haskellPackages.purescript 的静态可执行文件;这会跳过 building/installing PureScript 作为 Haskell 库
- 您可以通过
npm install pulp
安装 Pulp - 二进制文件将安装到 node_modules/.bin/pulp
- 示例代码无法编译,因为您尚未通过 Bower 下载依赖项。您可以通过
bower install purescript-prelude purescript-console
. 安装它们
但是node_modules/.bin/pulp init
会给你一个Bower文件,你可以运行bower install
给你一个基本的项目。然后你可以 node_modules/.bin/pulp run
使用 node.js 来执行它,但你可能希望 pulp browserify --to example.js
得到一个文件,你可以把它放在 [=32= 的 <script>
标签中].
我正在尝试在 NixOs
上使用 purescript
设置 hello world
项目并有几个问题,
- Official
purescript
网站推荐通过npm
安装,但没有nixos.nodePackages.purescript
,而是我在nixpkgs
中找到了至少 2 个变体- nixos.purescript
- nixos.haskellPackages.purescript
有什么不同?
- 官方网站通过
npm
推荐pulp
和bower
,但只有nodePackages.bower
可用,并且有未记录的psc-package
。
处理纯脚本包的nix
方法应该是什么?
- 官方网站上的示例代码(参见下面的
hello.purs
)甚至无法编译,
有这些错误。
$ purs compile hello.purs
Error found:
at hello.purs line 1, column 1 - line 1, column 1
Unable to parse module:
unexpected "import"
expecting "module"
我在代码中添加了module Hello
,但还是失败了。
$ purs compile hello.purs
Error 1 of 2:
in module Hello
at hello.purs line 2, column 1 - line 2, column 15
Module Prelude was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
Error 2 of 2:
in module Hello
at hello.purs line 3, column 1 - line 3, column 39
Module Control.Monad.Eff.Console was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
正确的工作流程应该如何?
目标是用一个 hello.purs
来实现最小的示例项目
运行 在网络浏览器中。
这是hello.purs
module Hello where
import Prelude
import Control.Monad.Eff.Console (log)
greet :: String -> String
greet name = "Hello, " <> name <> "!"
main = log (greet "World")
如果您还可以为 nix-shell
提供 shell.nix
或为 nix-build
提供 default.nix
,那将非常有帮助。
找到这个 2 岁的 guild,我正在尝试,但我仍然没有找到所有问题的答案。
- nixos.purescript 只是 nixos.haskellPackages.purescript 的静态可执行文件;这会跳过 building/installing PureScript 作为 Haskell 库
- 您可以通过
npm install pulp
安装 Pulp - 二进制文件将安装到node_modules/.bin/pulp
- 示例代码无法编译,因为您尚未通过 Bower 下载依赖项。您可以通过
bower install purescript-prelude purescript-console
. 安装它们
但是node_modules/.bin/pulp init
会给你一个Bower文件,你可以运行bower install
给你一个基本的项目。然后你可以 node_modules/.bin/pulp run
使用 node.js 来执行它,但你可能希望 pulp browserify --to example.js
得到一个文件,你可以把它放在 [=32= 的 <script>
标签中].