首页 > 解决方案 > 启动 npm 时出错:web 应用程序的根目录中不存在 node_modules

问题描述

所以我刚刚开始学习如何创建一个 node.js Web 应用程序,并且我已经安装了 node 和 npm 但由于某种原因我无法在运行npm start后在我的网站目录中运行npm init

检查了与此相关的其他问题,到目前为止,没有一个答案对我有用。

请参阅下面的错误消息。

> portfolio@1.0.0 start /Users/macintosh/Documents/Portfolio
> node server.js

internal/modules/cjs/loader.js:968
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /Users/macintosh/Documents/Portfolio/server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
    at Function.Module._load (internal/modules/cjs/loader.js:841:27)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/Users/macintosh/Documents/Portfolio/server.js:2:15)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/Users/macintosh/Documents/Portfolio/server.js' ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! portfolio@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the portfolio@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macintosh/.npm/_logs/2020-07-31T09_30_20_392Z-debug.log

这是下面的日志文件。

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using npm@6.14.6
3 info using node@v12.18.3
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle portfolio@1.0.0~prestart: portfolio@1.0.0
6 info lifecycle portfolio@1.0.0~start: portfolio@1.0.0
7 verbose lifecycle portfolio@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle portfolio@1.0.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/macintosh/Documents/Portfolio/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
9 verbose lifecycle portfolio@1.0.0~start: CWD: /Users/macintosh/Documents/Portfolio
10 silly lifecycle portfolio@1.0.0~start: Args: [ '-c', 'node server.js' ]
11 silly lifecycle portfolio@1.0.0~start: Returned: code: 1  signal: null
12 info lifecycle portfolio@1.0.0~start: Failed to exec start script
13 verbose stack Error: portfolio@1.0.0 start: node server.js
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315:20)
13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid portfolio@1.0.0
15 verbose cwd /Users/macintosh/Documents/Portfolio
16 verbose Darwin 19.6.0
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
18 verbose node v12.18.3
19 verbose npm  v6.14.6
20 error code ELIFECYCLE
21 error errno 1
22 error portfolio@1.0.0 start: node server.js
22 error Exit status 1
23 error Failed at the portfolio@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

标签: node.jsexpressnpm

解决方案


Error: Cannot find module 'express'

清楚地说你已经在你的server.js中导入了express npm 包,但它没有安装在你的项目文件夹中。当您在项目中安装express或任何包时,您将在package.json中将其视为依赖项并安装在 node_modules/packagefolder 中。所以请确保你已经安装了express包。


推荐阅读