将现有的 JS "package" 与 Node.JS 一起使用?
Use existing JS "package" with Node.JS?
我有一些现有的 JS 代码,我将其作为 NPM 包发布。我们称它为 "my-pkg"。我创建了 package.json
并安装了我的新本地包。我的包裹包含这些文件:
- 我的-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 包。我在这里错过了什么?
所有 Node.js modules 必须通过 module.exports
导出其内容。您的文件中缺少以下内容:
module.exports.ping = ping;
这也有效(exports
最初分配给 module.exports
):
exports.ping = ping;
我有一些现有的 JS 代码,我将其作为 NPM 包发布。我们称它为 "my-pkg"。我创建了 package.json
并安装了我的新本地包。我的包裹包含这些文件:
- 我的-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 包。我在这里错过了什么?
所有 Node.js modules 必须通过 module.exports
导出其内容。您的文件中缺少以下内容:
module.exports.ping = ping;
这也有效(exports
最初分配给 module.exports
):
exports.ping = ping;