我有一些现有的JS代码,将作为NPM软件包发布。我们称之为“ my-pkg”。我已经创建了package.json并安装了新的本地软件包。我的程序包包含以下文件:


my-pkg.js
package.json


my-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


请注意,这是在Windows 8上带有Node.JS v0.12.2的提升的命令行中。我希望公开现有的JS功能,而不是编写全新的NPM软件包。我在这里想念什么?

最佳答案

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

module.exports.ping = ping;


这也很好(最初将exports分配给module.exports):

exports.ping = ping;

关于javascript - 使用现有的JS“包”和Node.JS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30241670/

10-11 11:18