【发布时间】:2016-06-15 17:49:04
【问题描述】:
我对节点很陌生,很可能这是一个非常简单的问题。
假设我有一个包裹mypackage。在我的包的package.json 中,我定义了main 键:
...
"main": "./dist/index.js",
...
在dist 文件夹中还有一个名为tools.js 的模块
安装mypackage 后,我可以在该文件夹上运行节点,然后执行以下操作:
> require('mypackage')
效果很好。但是,当我尝试导入 tools 模块时,我遇到了这个问题:
> require('mypackage/tools')
Error: Cannot find module 'mypackage/tools'
at Function.Module._resolveFilename (module.js:438:15)
at Function.Module._load (module.js:386:25)
at Module.require (module.js:466:17)
at require (internal/module.js:20:19)
at repl:1:1
at REPLServer.defaultEval (repl.js:272:27)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:441:10)
at emitOne (events.js:101:20)
但是,如果我指定 dist 文件夹,它会起作用:
> require('mypackage/dist/tools')
但这不是我希望我的用户做的事情。如果我同时拥有src 和dist 并且希望通过mypackage/otherMod 访问非主模块,我应该遵循什么项目结构?谢谢。
【问题讨论】:
标签: node.js module npm package