使用现有的JS"包"与Node.JS?

时间:2015-05-14 15:49:16

标签: javascript node.js npm

我有一些现有的JS代码,我将其作为NPM包发布。我们称之为" my-pkg"。我创建了package.json并安装了我的新本地包。我的包由以下文件组成:

  • MY-pkg.js
  • 的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包。我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

所有Node.js modules必须通过module.exports导出其内容。您的文件中缺少以下内容:

module.exports.ping = ping;

这也可以(exports最初分配给module.exports):

exports.ping = ping;