使用npm只安装当前项目需要的包
Using npm to only install the packages needed in current project
我刚开始使用 node/npm,在使用
时遇到了很多麻烦
- 安装包的路径
- 正在节点中加载包
我想要一个包文件夹(无论其路径如何),其中仅包含我当前项目所需的包(我不使用 package.json
,只是使用普通的 npm install...
)。因此,我没有将软件包安装在 npm root
给出的文件夹中,而是将所有软件包安装在 npm install --prefix ./node_modules pck_name
.
的本地文件夹中
如果我在全局安装包,我可以使用 require('pck-nam')
在 Node 中加载包,但是当我在本地文件夹中安装时,我无法在 Node 中加载包,即使添加node_path
的文件夹路径或 require
:
中包的完整路径
const pck = require('C:/Users/Me/myproject/my_modules/node_modules/pck-name');
错误是Cannot find module 'pck-name'
因为我在这个问题上卡了很长时间没有找到解决方案,所以我想重命名 npm root
给出的文件夹,然后进行全局安装:因为该文件夹将从头开始重新创建,然后我将只拥有我的项目的包。但是在安装之后,我做了 npm list
,并且列出了我以前的所有包,包括当前项目的包。
我读了很多 questions/answers 和很多教程,但我仍然无法按照我喜欢的方式使用 npm/node(我习惯了 python 并且我经常使用 import global/local 个模块,所以我可能 python 想得太多了)。
我至少可以部分回答我的问题,因为我知道为什么在我重命名文件夹后之前的包仍然存在。虽然我没有从 package.json
安装,但 npm install
确实创建了 package.json
,或者在我的例子中是 package-lock.json
。显然,当 运行 a npm install package-name
时,它将检查 package-lock.json
重新安装所有丢失的软件包。
所以重命名npm root
所指的文件夹还不够,我还添加重命名package-lock.json
。现在我清楚了。我仍然认为我还没有找到最好的方法,但至少我有我需要的。
我刚开始使用 node/npm,在使用
时遇到了很多麻烦- 安装包的路径
- 正在节点中加载包
我想要一个包文件夹(无论其路径如何),其中仅包含我当前项目所需的包(我不使用 package.json
,只是使用普通的 npm install...
)。因此,我没有将软件包安装在 npm root
给出的文件夹中,而是将所有软件包安装在 npm install --prefix ./node_modules pck_name
.
如果我在全局安装包,我可以使用 require('pck-nam')
在 Node 中加载包,但是当我在本地文件夹中安装时,我无法在 Node 中加载包,即使添加node_path
的文件夹路径或 require
:
const pck = require('C:/Users/Me/myproject/my_modules/node_modules/pck-name');
错误是Cannot find module 'pck-name'
因为我在这个问题上卡了很长时间没有找到解决方案,所以我想重命名 npm root
给出的文件夹,然后进行全局安装:因为该文件夹将从头开始重新创建,然后我将只拥有我的项目的包。但是在安装之后,我做了 npm list
,并且列出了我以前的所有包,包括当前项目的包。
我读了很多 questions/answers 和很多教程,但我仍然无法按照我喜欢的方式使用 npm/node(我习惯了 python 并且我经常使用 import global/local 个模块,所以我可能 python 想得太多了)。
我至少可以部分回答我的问题,因为我知道为什么在我重命名文件夹后之前的包仍然存在。虽然我没有从 package.json
安装,但 npm install
确实创建了 package.json
,或者在我的例子中是 package-lock.json
。显然,当 运行 a npm install package-name
时,它将检查 package-lock.json
重新安装所有丢失的软件包。
所以重命名npm root
所指的文件夹还不够,我还添加重命名package-lock.json
。现在我清楚了。我仍然认为我还没有找到最好的方法,但至少我有我需要的。