我有一些现有的JS代码,我将其作为NPM包发布。我们称之为" my-pkg"。我创建了package.json
并安装了我的新本地包。我的包由以下文件组成:
我-pkg.js
function ping() {
console.log("Hi!");
}
的package.json
{
"name": "my-pkg",
"version": "1.0.0",
"description": "My test package.",
"main": "my-pkg.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Me",
"license": "ISC"
}
我尝试使用这样的包:
npm install .\my-pkg
node
> var myPkg = require("my-pkg");
undefined
> myPkg.ping();
TypeError: undefined is not a function
请注意,这是在带有Node.JS v0.12.2的提升命令行中的Windows 8上。我希望揭示现有的JS功能,而不是编写一个全新的NPM包。我在这里缺少什么?
答案 0 :(得分:4)
所有Node.js modules必须通过module.exports
导出其内容。您的文件中缺少以下内容:
module.exports.ping = ping;
这也可以(exports
最初分配给module.exports
):
exports.ping = ping;