【发布时间】:2016-01-15 16:12:07
【问题描述】:
我正在使用节点 v0.10.32。 Windows 8.1。
我的目标是将节点应用程序链接为另一个主应用程序中的 node_module。
我去我的模块文件夹并做
npm link
然后,我转到主应用文件夹并执行
npm link my-module
这是结果
c:\dev\main-app>npm link my-module
unbuild my-module@0.0.2
c:\dev\main-app\node_modules\my-module -> C:\Users\Nizar\AppData\Roaming\npm\node_modules\my-module -> C:\dev\my-module
但是,链接似乎不起作用,require('my-module') 抛出以下错误
c:\dev\main-app>node app.js
module.js:340
throw err;
^
Error: Cannot find module 'my-module'
at Function.Module._resolveFilename (module.js:338:15)
- 我的模块确实是 v0.0.2。
- 我可以从 main-app/node_module/my-module 访问它
- 此文件夹存在 C:\Users\Nizar\AppData\Roaming\npm\node_modules\my-module
- my-module package.json 有 "name": "my-module"
此外,%NODE_PATH% 设置正确:
c:\dev\main-app>echo %NODE_PATH%
C:\Users\Nizar\AppData\Roaming\npm\node_modules
想法?
【问题讨论】:
-
当您发出
dir node_modules时,您是否看到类似01/12/2016 09:21 PM <JUNCTION> my-module [C:\Users\Nizar\AppData\Roaming\npm\node_modules\my-module]的内容?如果不是,那么链接出了点问题 -
哦,是的! 2016 年 1 月 15 日上午 11:02
我的模块 [C:\Users\Nizar\AppData\Roaming\npm\node_modules\my-module] -
它很奇怪,我仍然可以使用 cd 访问它。想法?
-
如果你
cd node_modules\my-module,你最终会进入你的模块文件夹,对吧?使用index.js或 package.json 中main键指定的其他内容? -
是的,index.js 不是我用于 my-module 的文件!