2017-09-14 6 views
2

Le projet elm Je travaille avec yarn sur nixos Je ne peux pas compiler. Ce projet compile avec succès pour mes collègues qui utilisent macOS; peut-être l'échec de compiler sur ma machine est lié à mon utilisation de NixOS.ne parvient pas à compiler lors de l'exécution avec un fil sur Nixos

Quand je lance $ yarn start je reçois la borne de sortie suivante:

$ 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 

et lorsque je tente de charger la page à http://0.0.0.0:3000/ ma console de navigateur affiche les erreurs suivantes:

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) 

et

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

Il semble que le problème peut avoir quelque chose à faire avec elm-make, puisque cela apparaît dans les deux erreurs. Mon chemin trouve elm-make à

$ which elm-make 
/home/matthew/.nix-profile/bin/elm-make 

qui est un autre endroit que le chemin où l'erreur signale qu'il essaie de trouver elm-make (/home/matthew/backup/azara_work/platform/web/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-make). Je me demande si cela pourrait être lié au problème.

Dans le répertoire indiqué dans l'erreur, elm-make ne semble être présent lors de l'inscription via 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 

Cependant, lorsque je tente d'exécuter la commande figurant dans la sortie de yarn start, sauf remplacement elm-make avec l'elm-make sur ce chemin node-modules, j'obtiens une erreur 'No tel fichier ou répertoire'.

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

Pourquoi pourrais-je obtenir ce « Aucun fichier ou répertoire » erreur lorsque vous tentez d'exécuter ces « modules de nœud- » elm-make lorsque l'exécutable est clairement visible lors de l'inscription via ls?

L'échec de la compilation est-il dû à la différence d'emplacements de chemin entre les chemins elm-make de mon chemin et l'autre sous 'node-modules'? Peut-être que le fil utilise le mauvais. Si oui, comment puis-je régler le fil pour utiliser le bon elm-make?

Comment puis-je obtenir yarn start pour compiler le projet avec succès?

Le conseil est très apprécié; Je suis coincé dessus pendant un moment.

Répondre

3

Je vous suggère de rendre l'installation de l'orme en option (en quelque sorte) pour NixOS. Habituellement plus facile si vous créez un shell.nix que tout le monde utilise et évite de dépendre de nix via npm.

La raison pour laquelle elm-make n'existe pas est due à l'interpréteur ELF, qui est situé à un endroit différent pour NixOS.

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

fix rapide serait de créer un lien symbolique tous les binaires dans ls -la $(nix-build -A elmPackages.elm '<nixpkgs>')/bin à votre bac à sable de cabale.

+1

Création d'un lien symbolique '$ ln -s/home/matthew /.nix-profile/bin/elm-make' depuis le bac à sable '/ home/matthew/backup/azara_work/plateforme/web/node_modules/elm/Elm-Plate-forme/0.18.0/.cabal-sandbox/bin' travaillé. Je vous remercie! – mherzl