<h3 dir="auto">Is there an existing issue for this?</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the existing issues</li>
</ul>
<h3 dir="auto">This issue exists in the latest npm version</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I am using the latest npm</li>
</ul>
<h3 dir="auto">Current Behavior</h3>
<p dir="auto"><code class="notranslate">npm install</code> does not work if try to install one workspace to another</p>
<p dir="auto">STR:</p>
<ul dir="auto">
<li><code class="notranslate">mkdir foo &amp;&amp; cd ./foo</code></li>
<li><code class="notranslate">npm init -y</code></li>
<li><code class="notranslate">npm init -y -w ./pkg-a</code></li>
<li><code class="notranslate">npm init -y -w ./pkg-b</code></li>
<li><code class="notranslate">npm install ./pkg-a -w pkg-b</code></li>
</ul>
<p dir="auto">AR: <code class="notranslate">npm ERR! Cannot set properties of null (setting 'dev')</code><br>
ER: Behaviour similar to <code class="notranslate">cd ./pkg-b &amp;&amp; npm install ../pkg-a</code></p>
<h3 dir="auto">Expected Behavior</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Steps To Reproduce</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>npm: 8.1.0</li>
<li>Node: v16.13.0</li>
<li>OS: macOS 12.0.1</li>
<li>platform: Darwin arm64</li>
</ul>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="60 verbose stack TypeError: Cannot set properties of null (setting 'dev')
60 verbose stack     at calcDepFlagsStep (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:34:21)
60 verbose stack     at visit (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:12:20)
60 verbose stack     at visitNode (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:57:25)
60 verbose stack     at next (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:44:19)
60 verbose stack     at depth (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:82:10)
60 verbose stack     at depth (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth.js:27:12)
60 verbose stack     at calcDepFlags (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:10:15)
60 verbose stack     at Arborist.[copyIdealToActual] (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:1400:7)
60 verbose stack     at Arborist.reify (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:153:35)
60 verbose stack     at async Install.install (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/lib/install.js:170:5)
61 verbose cwd /private/tmp/foo"><pre class="notranslate"><code class="notranslate">60 verbose stack TypeError: Cannot set properties of null (setting 'dev')
60 verbose stack     at calcDepFlagsStep (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:34:21)
60 verbose stack     at visit (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:12:20)
60 verbose stack     at visitNode (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:57:25)
60 verbose stack     at next (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:44:19)
60 verbose stack     at depth (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:82:10)
60 verbose stack     at depth (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/treeverse/lib/depth.js:27:12)
60 verbose stack     at calcDepFlags (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:10:15)
60 verbose stack     at Arborist.[copyIdealToActual] (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:1400:7)
60 verbose stack     at Arborist.reify (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:153:35)
60 verbose stack     at async Install.install (/Users/maksim/.nvm/versions/node/v16.13.0/lib/node_modules/npm/lib/install.js:170:5)
61 verbose cwd /private/tmp/foo
</code></pre></div>
<h3 dir="auto">EDIT</h3>
<p dir="auto">See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1019460977" data-permission-text="Title is private" data-url="https://github.com/npm/cli/issues/3847" data-hovercard-type="issue" data-hovercard-url="/npm/cli/issues/3847/hovercard?comment_id=1219533329&amp;comment_type=issue_comment" href="https://github.com/npm/cli/issues/3847#issuecomment-1219533329">#3847 (comment)</a> for minimum reproduction case. --<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wraithgar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wraithgar">@wraithgar</a></p>
<hr>
<h3 dir="auto">Is there an existing issue for this?</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the existing issues</li>
</ul>
<h3 dir="auto">Current Behavior</h3>
<p dir="auto">Running <code class="notranslate">npm install --workspace=&lt;workspace&gt;</code> is resulting in npm exiting with an errorcode and the following stack trace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="290 timing command:install Completed in 2473ms
291 verbose stack TypeError: Cannot set property 'dev' of null
291 verbose stack     at calcDepFlagsStep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:34:21)
291 verbose stack     at visit (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:12:20)
291 verbose stack     at visitNode (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:57:25)
291 verbose stack     at next (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:44:19)
291 verbose stack     at depth (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:82:10)
291 verbose stack     at depth (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth.js:27:12)
291 verbose stack     at calcDepFlags (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:10:15)
291 verbose stack     at Arborist.[copyIdealToActual] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:1375:7)
291 verbose stack     at Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:151:35)
291 verbose stack     at async Install.install (/usr/local/lib/node_modules/npm/lib/install.js:170:5)
292 verbose cwd /usr/src
293 verbose Linux 5.10.47-linuxkit
294 verbose argv &quot;/usr/local/bin/node&quot; &quot;/usr/local/bin/npm&quot; &quot;install&quot; &quot;--workspace=scheduler&quot;
295 verbose node v14.16.1
296 verbose npm  v7.24.2
297 error Cannot set property 'dev' of null
298 verbose exit 1"><pre class="notranslate"><code class="notranslate">290 timing command:install Completed in 2473ms
291 verbose stack TypeError: Cannot set property 'dev' of null
291 verbose stack     at calcDepFlagsStep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:34:21)
291 verbose stack     at visit (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:12:20)
291 verbose stack     at visitNode (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:57:25)
291 verbose stack     at next (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:44:19)
291 verbose stack     at depth (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth-descent.js:82:10)
291 verbose stack     at depth (/usr/local/lib/node_modules/npm/node_modules/treeverse/lib/depth.js:27:12)
291 verbose stack     at calcDepFlags (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js:10:15)
291 verbose stack     at Arborist.[copyIdealToActual] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:1375:7)
291 verbose stack     at Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:151:35)
291 verbose stack     at async Install.install (/usr/local/lib/node_modules/npm/lib/install.js:170:5)
292 verbose cwd /usr/src
293 verbose Linux 5.10.47-linuxkit
294 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--workspace=scheduler"
295 verbose node v14.16.1
296 verbose npm  v7.24.2
297 error Cannot set property 'dev' of null
298 verbose exit 1
</code></pre></div>
<p dir="auto">Dockerfile for container I'm running the command in:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="FROM node:14.16.1
RUN npm install -g npm@7.24.2

RUN mkdir -p /usr/src/
WORKDIR /usr/src

COPY ./package.json /usr/src/
COPY ./scheduler/package.json /usr/src/scheduler/
RUN npm install --workspace=scheduler"><pre class="notranslate"><code class="notranslate">FROM node:14.16.1
RUN npm install -g npm@7.24.2

RUN mkdir -p /usr/src/
WORKDIR /usr/src

COPY ./package.json /usr/src/
COPY ./scheduler/package.json /usr/src/scheduler/
RUN npm install --workspace=scheduler
</code></pre></div>
<p dir="auto">node_modules seem to successfully install but npm exits with an error code</p>
<h3 dir="auto">Expected Behavior</h3>
<p dir="auto">npm install completes without raising an error</p>
<h3 dir="auto">Steps To Reproduce</h3>
<ol dir="auto">
<li>Setup an npm project with workspaces</li>
<li>Create a docker container according to the above specifications, with one of the commands attempting to run npm install for a specific workspace</li>
<li>Attempt to build the container</li>
<li>npm installs node_modules successfully but exits with error</li>
</ol>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>OS: Debian GNU/Linux 9 (stretch)</li>
<li>Node: 14.16.1</li>
<li>npm: 7.24.2</li>
</ul>