在nixos上运行纱线时,elm make无法编译

在nixos上运行纱线时,elm make无法编译,elm,yarnpkg,nixos,Elm,Yarnpkg,Nixos,我正在处理的elm项目warnonnixos无法编译。该项目为使用macOS的同事成功编译;在我的机器上编译失败可能与我使用NixOS有关 当我运行$warn start时,我得到以下终端输出: $ yarn start yarn start v0.20.3 $ webpack-dev-server --env dev env dev Project is running at http://0.0.0.0:3000/ webpack output is served from / Conte

我正在处理的
elm
项目
warn
on
nixos
无法编译。该项目为使用macOS的同事成功编译;在我的机器上编译失败可能与我使用NixOS有关

当我运行
$warn start
时,我得到以下终端输出:

$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev 
env dev
Project is running at http://0.0.0.0:3000/
webpack output is served from /
Content not from webpack is served from /home/matthew/backup/azara_work/platform/web/src
404s will fallback to /index.html
Running elm-make /home/matthew/backup/azara_work/platform/web/src/App.elm --yes --warn --debug --output /tmp/117814-7766-1wq3nh5.xanii6yldi.js
当我尝试在
http://0.0.0.0:3000/
my browser console显示以下错误:

VM1496:1 Uncaught Error: Module build failed: Error: Compiler process exited with error Compilation failed
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: spawn /home/matthew/backup/azara_work/platform/web/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:504:3

    at ChildProcess.<anonymous> (/home/matthew/backup/azara_work/platform/web/node_modules/node-elm-compiler/index.js:141:27)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:891:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:497:12)
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:504:3

    at ChildProcess.<anonymous> (/home/matthew/backup/azara_work/platform/web/node_modules/node-elm-compiler/index.js:141:27)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:891:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:497:12)
    at eval (eval at ./src/App.elm (http://0.0.0.0:3000/index.js:4316:1), <anonymous>:1:7)
    at Object../src/App.elm (http://0.0.0.0:3000/index.js:4316:1)
    at __webpack_require__ (http://0.0.0.0:3000/index.js:658:30)
    at fn (http://0.0.0.0:3000/index.js:86:20)
    at eval (eval at ./src/index.js (http://0.0.0.0:3000/index.js:4324:1), <anonymous>:7:13)
    at Object../src/index.js (http://0.0.0.0:3000/index.js:4324:1)
    at __webpack_require__ (http://0.0.0.0:3000/index.js:658:30)
    at fn (http://0.0.0.0:3000/index.js:86:20)
    at Object.0 (http://0.0.0.0:3000/index.js:4333:18)
    at __webpack_require__ (http://0.0.0.0:3000/index.js:658:30)
与错误报告试图查找的路径不同的位置
elm make
/home/matthew/backup/azara_work/platform/web/node_modules/elm/elm platform/0.18.0/.cabal sandbox/bin/elm make
)。我想知道这是否与问题有关

在错误中列出的目录中,
elm make
通过
ls
列出时确实出现:

$ ls /home/matthew/backup/azara_work/platform/web/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/
elm  elm-make  elm-package  elm-reactor  elm-repl
但是,当我尝试运行
warn start
的输出中列出的命令时,除了在该节点模块路径中将
elm make
替换为elm make之外,我得到一个“无此类文件或目录”错误

$ ./node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make /home/matthew/backup/azara_work/platform/web/src/App.elm --yes --warn --debug --output /tmp/117814-7422-1p5ad15.q2uqqzd7vi.js
-bash: ./node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make: No such file or directory
当可执行文件通过
ls
列出时清晰可见时,为什么在尝试运行此“节点模块”
elm make
时会出现“无此类文件或目录”错误

编译失败是因为我的路径的
elm make
和“节点模块”下的另一个路径位置不同吗?也许纱线用错了。如果是这样,我如何设置纱线以使用正确的
elm make

如何让
纱线开始
成功编译项目


建议是非常感谢的;我已经在这个问题上纠缠了一段时间。

我建议您为NixOS选择elm安装。通常最简单的方法是创建人人都使用的shell.nix,并避免通过npm依赖nix

elm make之所以不存在,是因为ELF解释器对于NixOS来说位于不同的位置

尝试
ldd./node\u modules/elm/elm Platform/0.18.0/.cabal sandbox/bin/elm make


快速修复方法是将
ls-la$(nix build-A elmPackages.elm''中的所有二进制文件进行符号链接/bin
到你的阴谋集团沙箱。

创建一个符号链接
$ln-s/home/matthew/.nix profile/bin/elm make
从沙箱bin内部
/home/matthew/backup/azara_work/platform/web/node_modules/elm/elm/0.18.0/.cabal sandbox/bin
起作用。非常感谢。
$ ls /home/matthew/backup/azara_work/platform/web/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/
elm  elm-make  elm-package  elm-reactor  elm-repl
$ ./node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make /home/matthew/backup/azara_work/platform/web/src/App.elm --yes --warn --debug --output /tmp/117814-7422-1p5ad15.q2uqqzd7vi.js
-bash: ./node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make: No such file or directory