【问题标题】:NPM module Is In /node_modules folder but cannot be found?NPM 模块在 /node_modules 文件夹中但找不到?
【发布时间】:2015-10-30 19:25:56
【问题描述】:

在我已设置的 Ubuntu 开发服务器上正确安装 md5 节点模块时遇到了一点问题。

(它在我的本地 windows 机器上运行良好,我可以在开发服务器上使用 npm 安装其他模块)

当我尝试启动一个 NodeJS 应用程序时,我正在处理它失败,指出未安装 md5 模块。

    // trying to start my application that depends on md5.
    drichardson@devwebserver:/var/www/node_app/meanapp$ node server.js
    module.js:340
        throw err;
        ^
    Error: Cannot find module 'md5'
        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> (/var/www/node_app/node_modules/hashfile/index.js:7:11)
        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 Module.require (module.js:364:17)
        at require (module.js:380:17)
        at Object.<anonymous> (/var/www/node_app/meanapp/app/controllers/exchanges.server.controller.js:15:14)
        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)

我已经尝试在我的工作目录中安装它:

    // Installing in working directory
    drichardson@devwebserver:/var/www/node_app/meanapp$ sudo npm install --save md5
    npm http GET https://registry.npmjs.org/md5
    npm http GET https://registry.npmjs.org/md5
    npm http 304 https://registry.npmjs.org/md5
    npm http GET https://registry.npmjs.org/is-buffer
    npm http GET https://registry.npmjs.org/crypt
    npm http GET https://registry.npmjs.org/charenc
    npm http 304 https://registry.npmjs.org/crypt
    npm http GET https://registry.npmjs.org/is-buffer
    npm http GET https://registry.npmjs.org/charenc
    npm http 200 https://registry.npmjs.org/is-buffer
    npm http GET https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz
    npm http GET https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz
    npm http GET https://registry.npmjs.org/charenc
    npm http GET https://registry.npmjs.org/charenc/-/charenc-0.0.1.tgz
    npm http 200 https://registry.npmjs.org/charenc/-/charenc-0.0.1.tgz
    npm http GET https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz
    npm http 200 https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz
    md5@2.0.0 node_modules/md5
    ├── charenc@0.0.1
    ├── crypt@0.0.1
    └── is-buffer@1.0.2

即使节点模块出现在我的 /node_modules 文件夹中,它仍然会抛出“找不到模块 md5

    // MD5 In my node_modules folder:
    drichardson@devwebserver:/var/www/node_app/meanapp/node_modules$ ls -la | grep 'md5'
    drwxr-xr-x  2 drichardson drichardson 4096 Oct 30 13:53 md5

我也试过了:

- 使用“npm install -g md5”全局安装模块
- 清理缓存并重新安装“npm cache clean”
- 使用“npm install”重新安装应用程序

我还能尝试什么让 npm 将 md5 识别为已安装?

谢谢,

【问题讨论】:

  • 检查它的安装位置,因为即使您尝试在工作目录中安装,如果其根目录之一具有 node_modules 目录,它也会安装在那里而不是工作目录中。我认为使用-g 全局安装应该确实有效。

标签: node.js npm md5 npm-install


【解决方案1】:

我遇到了类似的问题,问题不在于模块的安装位置,而是因为package.json 文件中的main 属性设置不正确。就我而言,它指的是一个不存在的文件。确保为模块正确设置了"main":"..."

如果这是您无法控制的模块,作为快速修复,您可以在最近的 node_modules 目录中进行更改。在我们的例子中,它位于项目的根目录中。

【讨论】:

    【解决方案2】:

    您可以尝试清除整个 node_modules 并重新安装所有内容吗?

       rm -rf node_modules
       npm install
    

    【讨论】:

    • 我试过这个,它没有工作我遇到了同样的问题,没有安装'md5'模块。不过谢谢。
    【解决方案3】:

    在文件夹/var/www/node_app/node_modules/hashfile/

    运行npm install md5

    你试过了吗?

    【讨论】:

      【解决方案4】:

      我的问题最终是我在本地运行的 Node 和 NPM 版本与在我的 Docker 容器中运行的版本。

      # Local versions:
      $ node --version
      v12.18.2
      $ npm --version
      6.14.10
      

      我换了Dockerfile

      FROM node:15-alpine3.12
      #         ^^
      # ...
      

      FROM node:12-alpine3.12
      #         ^^
      # ...
      

      【讨论】:

        猜你喜欢
        • 2021-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-16
        • 2021-09-04
        • 2019-04-16
        • 2019-04-11
        • 1970-01-01
        相关资源
        最近更新 更多