Issue 1:
Is there an existing issue for this?

I have searched the existing issues

This issue exists in the latest npm version

I am using the latest npm

Current Behavior

npm install does not work if try to install one workspace to another

STR:

mkdir foo && cd ./foo

npm init -y

npm init -y -w ./pkg-a

npm init -y -w ./pkg-b

npm install ./pkg-a -w pkg-b

AR: npm ERR! Cannot set properties of null (setting 'dev')

ER: Behaviour similar to cd ./pkg-b && npm install ../pkg-a

Expected Behavior

No response

Steps To Reproduce

No response

Environment

npm: 8.1.0

Node: v16.13.0

OS: macOS 12.0.1

platform: Darwin arm64

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

Issue 2:
EDIT

See #3847 (comment) for minimum reproduction case. --@wraithgar

Is there an existing issue for this?

I have searched the existing issues

Current Behavior

Running npm install --workspace=<workspace> is resulting in npm exiting with an errorcode and the following stack trace:

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

Dockerfile for container I'm running the command in:

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

node_modules seem to successfully install but npm exits with an error code

Expected Behavior

npm install completes without raising an error

Steps To Reproduce

Setup an npm project with workspaces

Create a docker container according to the above specifications, with one of the commands attempting to run npm install for a specific workspace

Attempt to build the container

npm installs node_modules successfully but exits with error

Environment

OS: Debian GNU/Linux 9 (stretch)

Node: 14.16.1

npm: 7.24.2