如何使用Node.js解决“找不到模块”错误?

从GitHub提取模块并按照说明进行构建后,我尝试使用以下方法将其拖入现有项目:

> npm install ../faye

这似乎可以解决问题:

> npm list

/home/dave/src/server

└─┬ faye@0.7.1

├── cookiejar@1.3.0

├── hiredis@0.1.13

└── redis@0.7.1

但是Node.js找不到模块:

> node app.js

node.js:201

throw e; // process.nextTick error, or 'error' event on first tick

^

Error: Cannot find module 'faye'

at Function._resolveFilename (module.js:334:11)

at Function._load (module.js:279:25)

at Module.require (module.js:357:17)

at require (module.js:368:17)

at Object.<anonymous> (/home/dave/src/server/app.js:2:12)

at Module._compile (module.js:432:26)

at Object..js (module.js:450:10)

at Module.load (module.js:351:31)

at Function._load (module.js:310:12)

at Array.0 (module.js:470:10)

我真的很想了解这里发生的事情,但是对于接下来的去向我有些茫然。有什么建议?

回答:

使用仅npm

install将模块安装到当前目录中(在名为的子目录中node_modules)。app.js位于下面home/dave/src/server/吗?如果不是,并且您想从任何目录使用该模块,则需要使用进行全局安装npm

install -g

我通常在本地安装大多数软件包,以便它们与我的项目代码一起签入。

如今,您可以使用package-lock.json文件,该文件在npm修改您的node_modules目录时自动生成。因此package-

lock.json,您可以省去签入包,因为它们会跟踪您当前正在使用的node_modules的确切版本。要从安装软件包,package-

lock.json而不要package.json使用命令npm ci

我收到了很多回应,特别是我签入了我的代码所依赖的软件包。几天前,有人取消发布他们的所有软件包(https://kodfabrik.com/journal/i-ve-

just-liberated-my-modules),这破坏了React,Babel和其他所有东西。希望现在很清楚,如果您具有生产代码,则不能依赖NPM来真正为您维护依赖项。

以上是 如何使用Node.js解决“找不到模块”错误? 的全部内容, 来源链接: utcz.com/qa/401073.html

回到顶部