V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skydiver
V2EX  ›  Node.js

Windows 下 npm 模块安装的位置太奇葩了

  •  
  •   skydiver · 2012-07-22 03:13:22 +08:00 · 10851 次点击
    这是一个创建于 4268 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 npm install express -g 安装 express ,结果 express 安装到了%home%\npm\node_modules 里面,express 依赖的模块安装到了%home%\npm\node_modules\express\node_modules 里面。。。

    后来安装另一个模块,结果这个模块依赖的包又安装到了这个模块的目录里面的node_modules目录里。。。而且和这个有重复的。。。

    真不知道干嘛设计成这个样子。。。这样模块岂不是不能重用了。linux里也是这样的吗
    5 条回复    1970-01-01 08:00:00 +08:00
    skydiver
        1
    skydiver  
    OP
       2012-07-22 03:14:52 +08:00
    是不是应该统一安装到 %home%\npm\node_modules 里面?但是我手动挪过去之后,运行一个模块的时候就找不到依赖的模块了。。
    s
        2
    s  
       2012-07-22 03:31:35 +08:00
    npm和包不是用目录来区分版本的,也就是说不是 `node_modules/connect/1.8/` 这种目录结构。
    所以,依赖必须各管各的,要不版本冲突了。
    rhyzx
        3
    rhyzx  
       2012-07-22 10:44:14 +08:00
    之前也研究探讨过NODE模块在WIN下的路径问题..
    对于无法模块重用, 虽然浪费了些空间其实问题不大, 安装也方便

    不过对于路径的定义还是持怀疑态度的,
    在下经过修改后路径成了这样:
    nodejs/
    |-- node.exe
    |-- npm.cmd
    |-- lessc.cmd
    |-- node_modules/
    | |-- npm/
    | |-- less/
    | |-- glob/
    | `-- other_modules/
    `-- npm_cache/

    path添加nodejs/目录即可
    另外WIN下默认安装node后安装的全局模块-g 无法require到, 可以添加NODE_PATH变量指向到nodejs/node_mudules
    infinte
        4
    infinte  
       2012-07-23 01:42:57 +08:00
    npm 的依赖包一直是放在 模块目录/node_modules 的好吧!
    hypoo
        5
    hypoo  
       2012-07-23 13:45:18 +08:00
    到npm官方下载win包 替换默认node安装的npm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1367 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:35 · PVG 07:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.