从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)

我真的很想了解这里发生了什么,但我有点不知所措,不知道下一步该去哪里。有什么建议吗?


当前回答

我试图发布自己的包,然后将其包含在另一个项目中。我遇到这个问题是因为我是如何构建第一个模块的。我使用ES2015导出来创建模块,例如,假设模块看起来像这样:

export default function(who = 'world'){
    return `Hello ${who}`;
}

与Babel一起编译后,发布前:

'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

exports.default = function () {
    var who = arguments.length <= 0 || arguments[0] === undefined ? 'world' : arguments[0];


    return 'Hello ' + who;
};

因此,在另一个项目(无ES2015)中安装npm模块名称后,我不得不做

var-hello=require('module-name').default;

真的把包裹进口了。

希望这有帮助!

其他回答

当第一个npm安装由于某种原因(npm的SIGINT)崩溃,或者延迟太长,或者数据损坏时,就会发生这种情况。再次尝试npm安装不会解决问题。

npm第一次检查出现了问题,因此最好的选择是删除该文件并重新启动npm安装。

逐步运行以下命令。它解决了我的问题:

npm缓存清理–强制rm package-lock.jsonrm-r节点模块npm i--保存--旧版对等deps

我在使用实时服务器(使用Fullstack React书)时遇到了这个问题:

我一直得到:

错误:找不到模块“”/禁用浏览器缓存.js'...

我不得不调整我的包.json

发件人:“脚本”:{...“server”:“实时服务器公共--主机=本地主机--端口=3000--中间件=./disable browser cache.js”...}“脚本”:{收件人:...“server”:“实时服务器公共--主机=本地主机--端口=3000--中间件=../../disable browser cache.js”...}

请注意,相对路径似乎已断开/尴尬…/变为..//

我在这里发现了问题

此外,如果有人跟随这本书:

将packages.json中的devDependencies更改为:


"live-server": "https://github.com/tapio/live-server/tarball/master"

目前,从v1.2.0升级到v1.2.1

使用nvm很好。最好安装Node的v13.14(*v14+会带来其他麻烦)nvm安装v13.14.0nvm别名默认值v13.14.0使用npm i-g更新npmnpm@7.3.0运行:npm更新您也可以使用npm列表来查看依赖关系的层次结构。(出于某种原因,node 15+最新的npm默认只显示第一级深度-a la package.json。这使得默认命令毫无意义!您可以追加--depth=n)以使命令再次更有用)。您也可以使用npm审计。存在需要更新(chokidar和其他一些软件包的更新)到更新版本的问题。live服务器尚未更新以支持较新的相应nodev14库版本。

请在此处查看类似帖子


脚注:另一件事,当你进入JSX部分时,请在这里查看我的答案:https://stackoverflow.com/a/65430910/495157

当您到达:

具有道具、状态和子级的高级组件配置。P182+,节点版本13不支持某些依赖项。稍后也会添加相关结果。

我昨天经历了这个错误。我花了一段时间才意识到package.json中的主条目指向了我移动的文件。一旦我更新,错误消失了,包工作了。

我可以再加一个地方检查;我尝试使用的软件包是我自己发布给私人NPM回购的另一个软件包。我忘记正确配置package.json中的“main”属性。因此,该包位于消费包的node_modules文件夹中,但我得到的是“找不到模块”。我花了几分钟才意识到自己的错误-(