Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NPM模块解决问题_Node.js_Npm - Fatal编程技术网

Node.js NPM模块解决问题

Node.js NPM模块解决问题,node.js,npm,Node.js,Npm,我们有module-A,它依赖于module-B Service-A在其package.json文件中有module-A。这将在服务-A的顶级节点\u模块中安装模块-B模块B然后可以在整个服务A中使用 我们将module-A中module-B的导入从github:module-B更改为npm:module-B@1.0.0 我们需要从这次更改中得到两件事——安装版本化的软件包,并给名称加上别名(这就是为什么它的前缀是npm) 现在-如果您在Service-A中安装npm,它将module-B从包锁

我们有
module-A
,它依赖于
module-B

Service-A
在其
package.json
文件中有
module-A
。这将在
服务-A
的顶级节点\u模块中安装
模块-B
<代码>模块B然后可以在整个
服务A
中使用

我们将
module-A
module-B
的导入从
github:module-B
更改为
npm:module-B@1.0.0

我们需要从这次更改中得到两件事——安装版本化的软件包,并给名称加上别名(这就是为什么它的前缀是
npm

现在-如果您在
Service-A
中安装
npm
,它将
module-B
包锁.json的顶层移动到
module-B
的依赖项

因此,
package lock.json
过去看起来像

{
  "name": "Service-A"
  "dependencies": {
     "module-A": {},
     "module-B": {}
  }
}
但现在,当我安装npm时,它看起来像:

{
  "name": "Service-A"
  "dependencies": {
     "module-A": {
        "dependencies": {
          "module-B": {}
        }
     }
  }
}
这意味着
module-B
不再处于顶层,不能由
service-A

现在真正让我震惊的是:如果我删除
node\u modules
package lock.json
,并运行
npm install
,它将在顶层正确安装
module-B
。但是如果只删除
node\u modules
(就像一个新的git拉取或内置),当它在包锁中移动
module-B
时,它会做出这种看似奇怪的行为,如上所述

有人能解释为什么会发生这种情况吗