2015-06-04 31 views
0

可能是一个非常简单的答案,但我迷路了。如果我在一个文件中有几个目录在根目录下有一种方法,我可以在该文件中找到require ('mylib/module1'),并让它从根目录搜索'mylib/module1.js',而不是使用require的位置的相对路径声明?从NPM根目录加载自定义模块

显然,如果我require('underscore') it will just look for it in的package.json , but I couldn't find any way to set up a reference in package.json`指向正确的文件夹,这样的:

依赖关系:{ “MYLIB /模块1”: “./mylib/module1.js” }

我确实找到了browser的引用,它允许您映射到客户端文件,但我正在寻找一些可以在后端工作的东西。

+1

看看http://www.devworkflows.com/posts/using-local-npm-modules-in-npm-v2-0/ –

回答

0

不需要npm支持的一种方法是将mylib文件夹重命名为node_modules。你可以简单地require('module')

这个原因起作用的原因是因为require递归搜索目录结构直到/寻找名为node_modules的文件夹。这种非常简单的机制允许节点具有多个级别的目录,在必要时可以在多个“本地”级别覆盖目录。例如,你可以有以下目录结构:

/usr 
    /home 
     /diplosaurus 
      /node_modules 
       module1.js <-------- version 1 
      /code 
       /node_modules 
        module1.js <-------- version 2 
       /projectA 
        /node_modules 
         module1.js <------- beta version 
        main.js 
       /projetB 
        main.js 

在你的home目录中的所有代码将使用的module1 1版本,但代码中code目录将使用版本2和projectA使用测试版。

这也意味着您可以让npm管理您的项目的node_modules目录,但仍然为您的个人图书馆维护手动管理的更高级别目录node_modules