Пакет NPM не установлен, даже если он определен из yarn.файл блокировки

#yarnpkg

#yarnpkg

Вопрос:

Я работаю над приложением Rails с использованием webpack (через webpacker gem) и yarn 1.22.5, поэтому у меня есть следующая строка из моего package.json файла:

 {
  "dependencies": {
    ...
    "@rails/webpacker": "5.2.1",
    ...
}
  

yarn.lock Файл хорошо описывает его со своими зависимостями:

 "@rails/webpacker@5.2.1":
  version "5.2.1"
  resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.2.1.tgz#87cdbd4af2090ae2d74bdc51f6f04717d907c5b3"
  integrity sha512-rO0kOv0o4ESB8ZnKX b54ZKogNJGWSMULGmsJacREfm9SahKEQwXBeHNsqSGtS9NAPsU6YUFhGKRd4i/kbMNrQ==
  dependencies:
    "@babel/core" "^7.11.1"
    "@babel/plugin-proposal-class-properties" "^7.10.4"
    "@babel/plugin-proposal-object-rest-spread" "^7.10.1"
    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
    "@babel/plugin-transform-destructuring" "^7.10.1"
    "@babel/plugin-transform-regenerator" "^7.10.1"
    "@babel/plugin-transform-runtime" "^7.11.0"
    "@babel/preset-env" "^7.11.0"
    "@babel/runtime" "^7.11.2"
    babel-loader "^8.1.0"
    babel-plugin-dynamic-import-node "^2.3.3"
    babel-plugin-macros "^2.8.0"
    case-sensitive-paths-webpack-plugin "^2.3.0"
    compression-webpack-plugin "^4.0.0"
    core-js "^3.6.5"
    css-loader "^3.5.3"
    file-loader "^6.0.0"
    flatted "^3.0.4"
    glob "^7.1.6"
    js-yaml "^3.14.0"
    mini-css-extract-plugin "^0.9.0"
    node-sass "^4.14.1"
    optimize-css-assets-webpack-plugin "^5.0.3"
    path-complete-extname "^1.0.0"
    pnp-webpack-plugin "^1.6.4"
    postcss-flexbugs-fixes "^4.2.1"
    postcss-import "^12.0.1"
    postcss-loader "^3.0.0"
    postcss-preset-env "^6.7.0"
    postcss-safe-parser "^4.0.2"
    regenerator-runtime "^0.13.7"
    sass-loader "^8.0.2"
    style-loader "^1.2.1"
    terser-webpack-plugin "^4.0.0"
    webpack "^4.44.1"
    webpack-assets-manifest "^3.1.1"
    webpack-cli "^3.3.12"
    webpack-sources "^1.4.3"
  

и у каждого из них есть запись со всеми ожидаемыми деталями, такими как webpack-cli пакет:

 webpack-cli@^3.3.12:
  version "3.3.12"
  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a"
  integrity sha512-NVWBaz9k839ZH/sinurM HcDvJOTXwSjYp1ku 5XKeOC03z8v5QitnK/x lAxGXFyhdayoIf/GOpv85z3/xPag==
  dependencies:
    chalk "^2.4.2"
    cross-spawn "^6.0.5"
    enhanced-resolve "^4.1.1"
    findup-sync "^3.0.0"
    global-modules "^2.0.0"
    import-local "^2.0.0"
    interpret "^1.4.0"
    loader-utils "^1.4.0"
    supports-color "^6.1.0"
    v8-compile-cache "^2.1.1"
    yargs "^13.3.2"
  

Проблема в том, что webpack, компилирующий webpack-cli пакет, не установлен!
Просматривая node_modules/ папку, я не смог найти ни одной папки с таким именем.

Выполнение команд yarn , yarn --force или yarn install --skip-integrity-check не приводит к его установке.

Что-то еще, что я заметил: некоторые зависимости из @rails/webpacker пакета фактически установлены, как babel-plugin-dynamic-import-node но не babel-loader пакет.

Я попытался установить webpack-cli пакет, с app yarn add webpack-cli@^3.3.12 которым «исправлена» проблема для этого пакета, но это очень раздражает.

Есть ли что-то, чего я не понимаю? Кто-нибудь может мне помочь, пожалуйста?

Комментарии:

1. . npmjs.com/package/@rails/webpacker сэр, используйте npm : npm i @rails/webpacker --save

2. Спасибо за ваш комментарий, но я использую yarn, а не NPM.