如何发布和使用 npm 包
How publish and use the npm packages
我的模块
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 publish
已成功发布,我可以在 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();
但是,运行 脚本失败了:
node ./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
在你的 npmpublicrepo package.json 你暴露了一个错误 primary entry point to your program。您设置的文件不存在:
"main": "index.js"
您可以将 test.js 重命名为 index.js 或者您可以将 test.js 文件公开为程序的主要入口点:
"main": "test.js"
我的模块
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 publish
已成功发布,我可以在 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();
但是,运行 脚本失败了:
node ./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
在你的 npmpublicrepo package.json 你暴露了一个错误 primary entry point to your program。您设置的文件不存在:
"main": "index.js"
您可以将 test.js 重命名为 index.js 或者您可以将 test.js 文件公开为程序的主要入口点:
"main": "test.js"