我正在编写一个库,需要知道如果用户在npm install -S X
文件存在之前尝试在其项目中运行package.json
会发生什么。
我刚在Windows上试过这个,果然,NPM没有barf并继续使用它的业务但是当安装命令完成时,仍然没有node_modules
文件夹或package.json文件。
有谁知道预期会发生什么?我假设我应该要求我的库的用户在运行“npm install X”之前运行“npm init”?
看起来NPM在安装结束时会抛出错误 -
ENOENT: no such file or directory, open 'package.json'
但我想知道是否会阻止安装过程创建一个node_modules目录,并实际将依赖项放在那里。
答案 0 :(得分:1)
npm install
标记的 -g
将沿文件夹树向上检查包含package.json
或node_modules
文件夹的文件夹。
如果满足其中任何一个条件,则该文件夹将被视为当前目录,以用于您正在运行的npm
命令。如果找不到这样的文件夹,则使用当前文件夹。
如您所述,将创建一个node_modules
文件夹,在将包加载到缓存后,它将被解压缩到该文件夹中。