web-dev-qa-db-ja.com

ノードとnpm startが機能しません

タイトルは問題のほとんどを示しています。 node .を実行しようとすると、次のメッセージが表示されます。

    module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

実際にはモジュールフォルダがないようです。空のディレクトリでexpressを実行しています

ただし、npmは正常に機能します。必要に応じて、これは新規の高速インストールです。どんな助けも素晴らしいでしょう、ありがとう!

完全なエラーメッセージ:

 new-Host-2:~ Brennan$ cd Desktop/
new-Host-2:Desktop Brennan$ mkdir test4
new-Host-2:Desktop Brennan$ cd test4
new-Host-2:test4 Brennan$ express -e

   create : .
   create : ./package.json
   create : ./app.js
   create : ./public
   create : ./public/javascripts
   create : ./public/images
   create : ./public/stylesheets
   create : ./public/stylesheets/style.css
   create : ./routes
   create : ./routes/index.js
   create : ./routes/users.js
   create : ./views
   create : ./views/index.ejs
   create : ./views/error.ejs
   create : ./bin
   create : ./bin/www

   install dependencies:
     $ cd . && npm install

   run the app:
     $ DEBUG=test4 ./bin/www

new-Host-2:test4 Brennan$ node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/Brennan/Desktop/test4/app.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
new-Host-2:test4 Brennan$ npm start app.js
npm ERR! Error: ENOENT, open '/Users/Brennan/Desktop/test4/node_modules/app.js/package.json'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "start" "app.js"
npm ERR! cwd /Users/Brennan/Desktop/test4
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.7
npm ERR! path /Users/Brennan/Desktop/test4/node_modules/app.js/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Brennan/Desktop/test4/npm-debug.log
npm ERR! not ok code 0
new-Host-2:test4 Brennan$ forever app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms

module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/Brennan/Desktop/test4/app.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
error: Forever detected script exited with code: 8
21
Bren

express-generatorを使用してノードアプリケーションを生成した後、プロジェクトの依存関係をインストールする必要があります。これは次の方法で行われます。

$ npm install

これが完了したら、npmを使用してアプリを起動できます。

$ npm start

デフォルトでは、高速生成されたアプリは、これをstartnpmコマンドとして示します(これはpackage.jsonファイルで表示できます)。

"start": "node ./bin/www"

したがって、コマンドラインを介して同じことを実行するには、次を実行します。

$ node ./bin/www
38
dylants

一部のノードモジュールが既にnode_modulesにインストールされている空でないディレクトリでエクスプレスジェネレーターを実行した後、特にエクスプレス自体で同じ問題が発生しました。単にフォルダを破棄し、すべての依存関係を再インストールすると、準備が整います。

rm -rf ./node_modules
npm install
npm start

編集:プロセスのある段階でserve-faviconをインストールし、ローカルpackage.jsonに保存したことを無視します。エクスプレスジェネレーターがその依存関係を追加できなかったようです。したがって:

npm install serve-favicon --save
npm start
10

次のようなディレクトリツリーが与えられます:

myapp
 - lib
  - favicon.ico
 - app.js
 - package.json
 - node_modules (npm installs all modules in here)

app.jsでfavicon.icoにアクセスしようとしている場合

var express = require('express'),
    fs = require('fs'); // this is for reading static files 

var favicon = require(fs.readFileSync('./lib/favicon.ico'));

ファビコンの変数は、期待したものと異なる場合があります。静的ファイルを提供する最良の方法は、ルートで静的ディレクトリを設定し、paramでそのルートをヒットした人がそのファイルを取得できるようにすることです。例:

https://mynodeapp.com/static/images/{param}

paramはファイルの名前になります(これはHapiを使用した例です-エクスプレスには静的ファイルの提供に似たものがあります)

1
Dan

プロジェクトに必要なすべてのモジュールをインストールするnpmstartを実行します

0
santhosh

Static-faviconの代わりにserve-faviconを使用します。 serve-faviconが正しくインストールされていることも確認してください。 cd serve-faviconを実行し、package.jsonを確認してから、npm installを実行して、すべての依存関係を正しくインストールします。

0
user4447835