节点。并且 npm start 不起作用

Posted

技术标签:

【中文标题】节点。并且 npm start 不起作用【英文标题】:node . and npm start don't work 【发布时间】:2014-08-11 14:37:13 【问题描述】:

标题说明了大部分问题。当我尝试运行 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

【问题讨论】:

我 rand node app 并给出了同样的错误。实际上这是Error: Cannot find module 'static-favicon' 的错误。 你使用的是哪个版本的 Expressjs? 4.2.0是版本/ 发布您的app.js 模块和app.uses 它不能'static-favicon' - 你必须要求它?或正确指向它? 【参考方案1】:

使用express-generator生成node应用后,需要为项目安装依赖。这是通过:

$ npm install

完成后,您可以使用npm 启动应用程序:

$ npm start

默认情况下,快速生成的应用程序将此声明为npmstart 命令(您可以在package.json 文件中查看此内容):

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

所以要通过命令行执行相同的操作,您需要运行:

$ node ./bin/www

【讨论】:

npm 可以启动,但不能启动节点或永远。但是,这就是我所需要的,所以我接受了答案。我认为 express 自动安装了模块,因为它没有出现问题。虽然我在以前可以运行的应用程序上使用它,所以我真的不知道为什么这对那个有帮助。嗯。谢谢! 当您运行npm start 时,您实际上是在运行node ./bin/www(这就是我在上面的回答中试图说的)。【参考方案2】:

node_modules 中已经安装了一些节点模块的非空目录上运行 express-generator 后,我遇到了同样的问题,尤其是 express 本身。只需核对文件夹,重新安装所有依赖项,就可以了:

rm -rf ./node_modules
npm install
npm start

编辑:在此过程的某个阶段,我已经安装了serve-favicon 并将其保存到本地 package.json。看起来 express 生成器未能添加该依赖项。因此:

npm install serve-favicon --save
npm start

【讨论】:

【参考方案3】:

给定一个像这样的目录树:

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'));

favicon 的 var 可能不是您所期望的。提供静态文件的最佳方法是设置一个带有路由的静态目录,这样任何使用参数访问该路由的人都会获得该文件:例如:

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

其中 param 是文件的名称(这是一个使用 Hapi 的示例 - express 具有类似的静态文件服务)

【讨论】:

似乎没有模块文件夹,所以没有什么要求。快递不应该创建一个吗?当前线路是var favicon = require('static-favicon'); 静态图标在哪里?在同一个目录? './thepath' 上一个目录? '../thepath' 老实说,我是节点新手,所以我不知道。它是本地模块还是全局模块?它似乎不在我制作的任何简单的快递应用程序中。 这里解释了节点模块系统:nodejs.org/api/modules.html 在您的情况下,当编写 require('static-favicon') 节点时,它将在安装节点模块时创建的 node_modules 文件夹中查找同名模块.您可以通过调用npm list列出所有当前安装的模块。【参考方案4】:

使用 serve-favicon 而不是 static-favicon。 还要验证您是否正确安装了 serve-favicon。 执行 cd serve-favicon,检查 package.json,然后运行 ​​npm install 以正确安装所有依赖项。

【讨论】:

【参考方案5】:

执行npmstart,它会为您的项目安装所有必需的模块

【讨论】:

以上是关于节点。并且 npm start 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 create-react-app 之后 React npm start 不起作用

我正在尝试在终端中运行 npm start,但它不起作用

尝试使用“npm start”运行此应用程序,但它不起作用。我如何使这个应用程序工作?

eslint --fix 在通过 npm 运行时不起作用

NPM Pug 在我的 JS 应用程序中不起作用

Worker spark webUI 在 Apache Spark 中不起作用