代码之家  ›  专栏  ›  技术社区  ›  mherzl

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

  •  2
  • mherzl  · 技术社区  · 9 年前

    elm yarn 在…上 nixos

    当我跑步时 $ yarn 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/ 我的浏览器控制台显示以下错误:

    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)
    

    ./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 ,因为这出现在两个错误中。我的路径找到 在

    $ 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 :

    $ 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,我得到了一个“没有这样的文件或目录”错误。

    $ ./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 ?

    编译失败是由于我的路径的 另一个在“节点模块”下?也许纱线用错了。如果是这样,我如何设置纱线以使用正确的 ?

    我怎么可能 要成功编译该项目?

    1 回复  |  直到 9 年前
        1
  •  3
  •   iElectric    9 年前

    我建议您(以某种方式)为NixOS选择elm安装。如果创建shell,通常最简单。每个人都使用的nix,并避免通过npm依赖nix。

    elm make不存在的原因是ELF解释器,对于NixOS来说,ELF解释器位于不同的位置。

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

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

    推荐文章