【发布时间】:2014-04-12 04:52:16
【问题描述】:
遇到了非常奇怪的问题。基本上我决定创建自己的 npm 包,并将其发布到世界各地。在开发过程中,我将它作为一个简单的节点模块进行测试,并且能够使用下一个代码来使用它:
var r = require('./lib/%mymodulename%');
当然是在 lib 文件夹中。
现在,我将它组织成一个 npm 包,然后我的 package.json 如下所示:
{
"name": "mymodulename",
"author": "xxx",
"description": "xxx",
"version": "0.0.1",
"homepage": "xxx",
"repository": {
"type": "git",
"url": "xxx"
},
"main": "/lib/mymodulename.js",
"scripts": {
"install":"node install.js"
},
"dependencies": {},
"engines": {
"node": ">=0.9"
}
}
当我尝试通过 npm install . -g 对其进行测试时,它已成功安装并且我可以通过以下方式查看我的本地模块:
npm ls -g
但是,当我尝试在节点文件中使用它时:
var r = require('mymodulename')npm 找不到。
我认为我遗漏了一些非常小的东西,但找不到什么。
谢谢, -D
【问题讨论】:
-
> 这些主要是出于历史原因。强烈建议您将依赖项本地放置在 node_modules 文件夹中。它们将被更快、更可靠地加载。 nodejs.org/api/…
-
我怀疑您缺少 index.js 作为模块的一部分。看看这里的“目录作为模块”book.mixu.net/node/ch8.html
-
main必须包含相对路径。尝试删除前导/。注意:你必须在包根目录下lib/mymodulename.js有一个js文件。 -
@MerynStol 你是对的:) 非常感谢!