Я набрал npm install
и получил следующую ошибку:
npm ERR! code ETARGET
npm ERR! notarget No matching version found for duplexer2@^0.2.0
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'multipipe'
npm ERR! notarget
Я просматриваю журналы и вижу, что multipipe - это зависимость emotion-server
, которая является зависимостью верхнего уровня в моем проекте.:
50 silly saveTree ├─┬ emotion-server@9.2.12
50 silly saveTree │ └─┬ create-emotion-server@9.2.12
...
50 silly saveTree │ │ └── object-keys@0.4.0
50 silly saveTree │ ├── multipipe@1.0.2
Достаточно справедливо.Начал задаваться вопросом, почему multipipe указывает зависимость, которая не существует, но, как выясняется, multipipe@1.0.2
никогда не указывает duplexer2@^0.2.0
.Вот package.json из multipipe@1.0.2
:
{
"name": "multipipe",
"version": "1.0.2",
"description": "pipe streams with centralized error handling",
"license": "MIT",
"repository": "juliangruber/multipipe",
"dependencies": {
"duplexer2": "^0.1.2",
"object-assign": "^4.1.0"
},
"devDependencies": {
"mocha": "^3.0.0",
"through2": "^2.0.0"
},
"scripts": {
"test": "make test"
}
}
Как видите, он запрашивает duplexer2
до 0.1.2 (я полагаю, что это правильная интерпретация ^), которая действительно существует.
Забавная вещь, duplexer@0.2.0 (не duplexer2@0.2.0) - это зависимость response-dev-utils:
50 silly saveTree │ ├─┬ react-dev-utils@4.2.3
50 silly saveTree │ │ ├── detect-port-alt@1.1.3
...
50 silly saveTree │ │ ├─┬ gzip-size@3.0.0
50 silly saveTree │ │ │ └── duplexer@0.2.0
Так что, возможно, npmнемного запутался, но я не могу доказать это ... Я просто хочу, чтобы npm выбрал правильные зависимости.(npm v6.4.1 на узле v 11.5.0)
Обновление Я удалил emotion-server
из package.json, сделал npm install --cache /tmp/empty-cache
и получил похожую проблему:
npm ERR! code ETARGET
npm ERR! notarget No matching version found for websocket-extensions@>=0.2.0
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'websocket-driver'
Журналы показывают websocket-driver@0.7.0
:
59 silly saveTree │ │ ├─┬ faye-websocket@0.11.1
59 silly saveTree │ │ │ └─┬ websocket-driver@0.7.0
Хорошо, но package.json для websocket-driver@0.7.0 говорит '> = 0.1.1'для расширений websocket никогда не говорилось: «расширения websocket @> = 0.2.0»
@> = - это то, чего я никогда раньше не видел и не имеет смысла.Что дает?