我正在寻找一种方法将模块或GitHub存储库安装到当前目录中,而不是将其放在node_modules
文件夹中。例如:
npm install gituser/hismodule
将hismodule
和依赖项安装在node_modules
中。但是我想将模块放在当前目录中,并且只将它的依赖项放在node_modules
中。
这也可以通过两个命令来完成。一个用于安装模块,另一个用于安装依赖项。有没有办法这样做?
到目前为止我还没找到任何东西。对我来说,唯一可行的解决方法是使用wget
从GitHub下载zip
文件并使用unzip
。但我想通过一个已知的标识符来做到这一点......
答案 0 :(得分:1)
我不认为你可以通过npm这样做,我不认为这是正确的做法。 git子模块更适合这样的事情。您可以将git存储库定义为存储库的子模块,每次克隆主存储库时,它也将克隆子模块。他们在一起工作得很好。您可以查看此官方文档:
https://git-scm.com/book/en/v2/Git-Tools-Submodules
这篇文章也非常有用:
子模块的概念很棒。它基本上允许你 将外部存储库附加到特定的另一个存储库中 路径。为了说明子模块的价值,它可能会 帮助我解释我是如何使用它们的。
https://chrisjean.com/git-submodules-adding-using-removing-and-updating/
<强> 更新 强>
你可以拥有类似的东西,而不是给他们一个zip文件。创建一个package.json文件并将其提供给它们。在那里,添加作为依赖项的root,并定义postinstall脚本。这样的事情:
{
"name": "your-dummy-packagejson",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"postinstall": "mv node_modules/your-project ."
},
"author": "",
"license": "ISC",
"dependencies": {
"your-project-dependency": "1.0.0"
}
}
mv node_modules/your-project .
命令。答案 1 :(得分:0)
您可以尝试使用前缀选项:
npm install --prefix <path/to/prefix_folder> -g