我是angular的新手,我想使用node_modules,假设它们存在于D:\ MySampleProject中,并且我也想在E:\ TestProject中使用相同的node_modules。不使用npm install(我使用过'mklink / j node_modules'(它不起作用)是否有任何可能的方法。请对此提供帮助。
答案 0 :(得分:0)
您绝对可以在项目之间共享一个node_modules目录。
来自节点的文档:
如果传递给require()的模块标识符不是本机模块, 并且不以“ /”、“../”或“ ./”开头,则节点从 当前模块的父目录,并添加/ node_modules,以及 尝试从该位置加载模块。
如果在此处找不到它,那么它将移至父目录,然后 以此类推,直到到达文件系统的根为止。
例如,如果位于“ /home/ry/projects/foo.js”的文件 require('bar.js'),则节点将在以下位置查找 此命令:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
因此,只需将node_modules文件夹放入项目目录中,然后放入所需的任何模块即可。像平常一样要求他们。当节点在您的项目文件夹中找不到node_modules目录时,它将自动检查父文件夹。因此,使目录结构像这样:
-myProjects
-node_modules
-myproject1
---子项目
-myproject2
这样,即使子项目的依赖项也可以在主node_modules存储库中使用。
以这种方式进行操作的一个缺点是,您将必须手动构建package.json文件(除非有人知道使用grunt或其他方式自动执行此操作的方法)。当您安装软件包并将--save arg添加到npm install命令时,它将自动将其附加到dependencies部分或您的package.json,这很方便。