首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当在nixos上运行纱线时,elm-make无法编译。

当在nixos上运行纱线时,elm-make无法编译。
EN

Stack Overflow用户
提问于 2017-09-14 19:57:49
回答 1查看 424关注 0票数 2

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

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

代码语言:javascript
复制
$ 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/加载页面时,我的浏览器控制台显示了以下错误:

代码语言:javascript
复制
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)

代码语言:javascript
复制
./src/App.elm
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)
 @ ./src/index.js 2:12-32
 @ multi (webpack)-dev-server/client?http://0.0.0.0:3000 webpack/hot/dev-server ./src/index.js

看来这个问题可能与elm-make有关,因为这在两个错误中都会出现。我的路径发现elm-make

代码语言:javascript
复制
$ which elm-make
/home/matthew/.nix-profile/bin/elm-make

它是一个与错误报告路径不同的位置,它试图查找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列表时确实存在。

代码语言:javascript
复制
$ 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

但是,当我尝试运行yarn start输出中列出的命令时,除了在此节点模块路径上用elm-make替换elm-make之外,我会得到一个'No这样的文件或目录‘错误。

代码语言:javascript
复制
$ ./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

为什么在试图运行这个“节点-模块”elm-make时,当通过ls列表时可执行文件明显可见时,我会得到“没有这样的文件或目录”错误?

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

如何让yarn start成功编译该项目?

建议是非常感谢的,我已经坚持了一段时间了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-14 20:18:20

我建议您让NixOS的elm安装是可选的。通常,如果您创建一个每个人都使用并避免通过npm依赖于nix的shell.nix,通常最简单。

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

试试ldd ./node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make

快速修复将是将ls -la $(nix-build -A elmPackages.elm '<nixpkgs>')/bin中的所有二进制文件符号链接到您的阴谋沙箱中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档