Как публиковать и использовать пакеты npm

Мой модуль

npmpublicrepo -- package.json -- test.js

package.json

   {
  "name": "npmpublicrepo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

test.js

exports.testMessage = function() {
   console.log("test");  
};

нпм публиковать

Это было успешно опубликовано, и я вижу страницу в npm

https://www.npmjs.com/package/npmpublicrepo

Мой обычный проект для использования выше пакета

npmpublicrepousage -- package.json -- index.js

package.json

{
  "name": "npmpublicrepousage",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "npmpublicrepo": "^1.0.0"
  }
}

после выполнения npm installЯ вижу папку в ./node_modules/npmpublicrepo и я могу видеть код модуля правильно.

Запуск скрипта с использованием модуля

Затем я использую предыдущий модуль в скрипте ./index.js:

var test = require("npmpublicrepo");
test.testMessage();

Но запустить скрипт не удается:

узел./index.js

... с ошибкой:

module.js:472
    throw err;
    ^

Error: Cannot find module 'npmpublicrepo'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/vimalprakash/Documents/Projects/NodeJs/npmpublicrepousage/index.js:1:74)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

Я не знаю, чего мне не хватает.

Версия моего узла: v7.4.0

Моя версия NPM: 4.0.5

1 ответ

Решение

В вашем пакете npmpublicrepo package.json вы предоставляете неверную первичную точку входа в вашу программу. Вы устанавливаете файл, который не существует:

"main": "index.js"

Вы можете переименовать test.js в index.js или открыть файл test.js в качестве основной точки входа в вашу программу с помощью:

"main": "test.js"
Другие вопросы по тегам