找不到Node.js模块

时间:2018-05-05 07:06:29

标签: node.js npm npm-install

我遇到安装的NPM软件包遇到Module Not Found错误,该软件包似乎出现在node_modules文件夹中。底层包本身缺少什么?

这是我的package.json:

{
  "name": "cmtest",
  "version": "0.0.0",
  "description": "cmtest",
  "main": "server.js",
  "author": {
    "name": "Andrew"
  },
  "dependencies": {
    "cloudmersive": "^1.3.2"
  }
}

然后我打电话给要求:

'use strict';
var http = require('http');
var Cloudmersive = require('cloudmersive');
var port = process.env.PORT || 1337;

http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');



    var api = new Cloudmersive.BarcodeLookupApi()

    var value = "value_example"; // {String} Barcode value


    var callback = function (error, data, response) {
        if (error) {
            console.error(error);
        } else {
            console.log('API called successfully. Returned data: ' + data);
        }
    };
    api.barcodeLookupEanLookup(value, callback);
}).listen(port);

但是我收到了这个错误:

"Cannot find module 'cloudmersive'"
"Error: Cannot find module 'cloudmersive'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:571:15)
    at Function.Module._load (internal/modules/cjs/loader.js:497:25)
    at Module.require (internal/modules/cjs/loader.js:626:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (c:\users\andrew\documents\visual studio 2017\Projects\cmtest\cmtest\server.js:3:20)
    at Module._compile (internal/modules/cjs/loader.js:675:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
    at Module.load (internal/modules/cjs/loader.js:589:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
    at Function.Module._load (internal/modules/cjs/loader.js:520:3)"

有什么想法吗?包裹本身有问题吗?这是我的开发/配置问题吗?

随着NPM安装cloudmersive包,并显示在node_modules文件夹中。我也尝试使用nvm在几个不同版本之间切换。

底层包源是:https://github.com/Cloudmersive/Cloudmersive.APIClient.Javascript

index.js文件有问题吗?

2 个答案:

答案 0 :(得分:1)

对于cloudmersive,

package.json表示main为src/client.invoker/index.js,但该文件不在该目录中。

答案 1 :(得分:0)

要在本地使用库而不发布到远程npm注册表,请首先通过更改来安装依赖项 进入包含package.json的目录。我们称之为JAVASCRIPT_CLIENT_DIR。然后运行:

npm install

接下来,在npm中使用以下内容将其全局链接到JAVASCRIPT_CLIENT_DIR

npm链接 最后,切换到您要使用cloudmersive的目录,然后运行:

npm link /path/to/<JAVASCRIPT_CLIENT_DIR>

您现在应该能够从最后运行的目录中的javascript文件中require('cloudmersive') 从上面命令。

您可以查看README.md目录中已安装的cloudmersive模块中的node_modules文件,以获取更详细的说明。