2016-05-10 28 views
0

私はNodeJSアプリケーションを持っており、CIツール(TravisまたはCodeShip)を使用した後、node_modules/.binフォルダ内のシンボリックリンクに問題があります。NPM node_modules/.binシンボリックリンク

私が実行している場合...

NPMは私のnode_modules /の.binフォルダは次のようになり、新しいUbuntuのサーバー、または私のdevのマシン上で

をインストール:

lrwxrwxrwx 1 ubuntu ubuntu 19 May 10 14:35 gulp -> ../gulp/bin/gulp.js 
lrwxrwxrwx 1 ubuntu ubuntu 25 May 10 14:35 nodemon -> ../nodemon/bin/nodemon.js 
lrwxrwxrwx 1 ubuntu ubuntu 32 May 10 14:35 randomstring -> ../randomstring/bin/randomstring 
は、

しかし、TravisCIまたはCodeShipでプロジェクトを実行した場合、node_modules/.binフォルダにシンボリックリンクが残っていて、残りのbinファイルのみでフラット化されているように見えます。

-rwxrwxr-x 1 ubuntu ubuntu 5384 Jan 31 20:55 gulp 
-rwxrwxr-x 1 ubuntu ubuntu 441 Apr 29 20:31 nodemon 
-rwxrwxr-x 1 ubuntu ubuntu 896 Feb 10 14:14 randomstring 

問題は、npmバイナリはnpmモジュールフォルダのコンテキスト内でbinが実行されていないため、内部依存関係を解決できないことです。 node_modules/nodemon):

> nodemon app.js 

module.js:327 
    throw err; 
    ^

Error: Cannot find module '../lib/cli' 
    at Function.Module._resolveFilename (module.js:325:15) 
    at Function.Module._load (module.js:276:25) 
    at Module.require (module.js:353:17) 
    at require (internal/module.js:12:17) 
    at Object.<anonymous> (/home/ubuntu/rawfiles/node_modules/.bin/nodemon:3:11) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 

npm ERR! Linux 3.13.0-74-generic 
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start" 
npm ERR! node v4.4.4 
npm ERR! npm v2.15.1 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] start: `nodemon app.js` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] start script 'nodemon app.js'. 
npm ERR! This is most likely a problem with the app package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  nodemon app.js 
npm ERR! You can get information on how to open an issue for this project with: 
npm ERR!  npm bugs app 
npm ERR! Or if that isn't available, you can get their info via: 
npm ERR! 
npm ERR!  npm owner ls app 
npm ERR! There is likely additional logging output above. 

npm ERR! Please include the following file with any support request: 
npm ERR!  /home/ubuntu/rawfiles/npm-debug.log 

したがってTravisCI/CodeShip経由で展開しようとした後、私は実行する必要があります...

をRM -R node_modules

NPMをインストール任意のnpmスクリプト(例えば、npm start)を実行させる。

Travis/CodeShipがシンボリックリンクをフラット/無視する設定項目はありますか?私はしばらくこのことを研究しており、答えを見つけていません。

答えて

0

残念ながら、私はシンボリックリンクが見つからなかったために決定的な回答を見つけることができませんでした。

npm install gulp 

npm install nodemon 

をシンボリックリンクを修理しBeforeInstall展開フックに:しかし、私は追加することにより、手で問題を解決しました。

関連する問題