Рейтинг:0

Ошибка при запуске npm run dev в Vagrant и VirtualBox: не удается найти модуль «webpack»

флаг vn

Чтобы дать небольшой контекст моей проблемы, вот моя локальная установка:

Бродяга 2.2.16 Виртуальная коробка 6.1.26 Убунту 20.04 ЛТС нпм v7.20.6 узел v16.6.6

Сначала мне было очень трудно установить webpack-cli, который выдал мне эту ошибку:

нпм ОШИБКА! код ЭПРОТО
нпм ОШИБКА! символическая ссылка системного вызова
нпм ОШИБКА! путь ../желудь/корзина/желудь
нпм ОШИБКА! место назначения /vagrant/my_project/frontend/node_modules/.bin/желудь     
нпм ОШИБКА! ошибка -71
нпм ОШИБКА! EPROTO: ошибка протокола, символическая ссылка '../acorn/bin/acorn' -> '/vagrant/my_project/frontend/node_modules/.bin/acorn'
нпм ОШИБКА! Полный журнал этого запуска можно найти в:
нпм ОШИБКА! /root/.npm/_logs/2021-08-16T05_40_20_295Z-debug.log

Пока я успешно не установил его с помощью следующих команд:

sudo npm install -g save-dev webpack-cli

Бег sudo webpack-кли также дал мне это:

активы по статусу 0 байт [кэшировано] 1 актив

ПРЕДУПРЕЖДЕНИЕ в конфигурации
Параметр «режим» не был установлен, для этого значения веб-пакет вернется к «производственному».
Установите для параметра «режим» значение «разработка» или «производство», чтобы включить значения по умолчанию для каждого
среда.
Вы также можете установить значение «none», чтобы отключить любое поведение по умолчанию. Узнайте больше: hts://webpack.js.org/configuration/mode/

ОШИБКА в главном
Модуль не найден: ошибка: не удается разрешить «./src» в «/vagrant/my_project/frontend»
разрешить './src' в '/vagrant/my_project/frontend' 
  используя файл описания: /vagrant/my_project/frontend/package.json (относительный путь: .)
    Поле «Браузер» не содержит действительной конфигурации псевдонима. 
    используя файл описания: /vagrant/my_project/frontend/package.json (относительный путь: ./src) 
      нет расширения
        Поле «Браузер» не содержит действительной конфигурации псевдонима.
    /vagrant/my_project/frontend/src не является файлом
      .js
        Поле «Браузер» не содержит действительной конфигурации псевдонима.
    /vagrant/my_project/frontend/src.js не существует 
      .json
        Поле «Браузер» не содержит действительной конфигурации псевдонима.
    /vagrant/my_project/frontend/src.json не существует
      .wasm
        Поле «Браузер» не содержит действительной конфигурации псевдонима.
    /vagrant/my_project/frontend/src.wasm не существует
      как каталог
        существующий каталог /vagrant/my_project/frontend/src
          используя файл описания: /vagrant/my_project/frontend/package.on (относительный путь: ./src)
            используя путь: /vagrant/my_project/frontend/src/index
              используя файл описания: /vagrant/my_project/frontend/packe.json (относительный путь: ./src/index)
                нет расширения
                  Поле «Браузер» не содержит действительной конфигурации псевдонима.
          /vagrant/my_project/frontend/src/index не существует 
        .js
                  Поле «Браузер» не содержит действительной конфигурации псевдонима.
          /vagrant/my_project/frontend/src/index.js не существует 
        .json
                  Поле «Браузер» не содержит действительной конфигурации псевдонима.
          /vagrant/my_project/frontend/src/index.json не существует
                .wasm
                  Поле «Браузер» не содержит действительной конфигурации псевдонима.
          /vagrant/my_project/frontend/src/index.wasm не существует

webpack 5.50.0 скомпилирован с 1 ошибкой и 1 предупреждением за 150 мс

Но я проигнорировал это и продолжил установку других пакетов, таких как babel и react, используя нпм установить -g.

Теперь, после настройки моего проекта и запуска этой команды:

sudo npm запустить разработчика

Я получил следующую ошибку:

> интерфейс@1.0.0 разработчик
> webpack --mode development --watch

[webpack-cli] Не удалось загрузить конфигурацию «/vagrant/my_project/frontend/webpack.config.js»
[webpack-cli] Ошибка: не удается найти модуль «webpack»
Требуется стек:
- /vagrant/my_project/frontend/webpack.config.js
- /usr/lib/node_modules/webpack-cli/lib/webpack-cli.js
- /usr/lib/node_modules/webpack-cli/lib/bootstrap.js
- /usr/lib/node_modules/webpack-cli/bin/cli.js
- /usr/lib/node_modules/webpack/bin/webpack.js
    в Function.Module._resolveFilename (узел: внутренний/модули/cjs/загрузчик:933:15)
    в Function.Module._load (узел: внутренний/модули/cjs/загрузчик:778:27)
    в Module.require (узел: внутренний/модули/cjs/загрузчик:1005:19)
    при необходимости (/usr/lib/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
    в Object.<anonymous> (/vagrant/my_project/frontend/webpack.config.js:2:17)
    в Module._compile (/usr/lib/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    в Object.Module._extensions..js (узел: внутренний/модули/cjs/загрузчик:1153:10)
    в Module.load (узел: внутренний/модули/cjs/загрузчик:981:32)
    в Function.Module._load (узел: внутренний/модули/cjs/загрузчик:822:12)
    в Module.require (узел: внутренний/модули/cjs/загрузчик:1005:19) {
  код: 'MODULE_NOT_FOUND',
  требуется стек: [
    '/vagrant/my_project/frontend/webpack.config.js',
    '/usr/lib/node_modules/webpack-cli/lib/webpack-cli.js',
    '/usr/lib/node_modules/webpack-cli/lib/bootstrap.js',
    '/usr/lib/node_modules/webpack-cli/bin/cli.js',
    '/usr/lib/node_modules/webpack/bin/webpack.js'
  ]
}

Кстати, вот содержимое моего webpack.config.js файл:

постоянный путь = требуется ("путь");
const webpack = require("webpack");

модуль.экспорт = {
  запись: "./src/index.js",
  вывод: {
    путь: path.resolve(__dirname, "./static/frontend"),
    имя файла: "[имя].js",
  },
  модуль: {
    правила: [
      {
        тест: /\.js$/,
        исключить: /node_modules/,
        использовать: {
          загрузчик: "бабель-загрузчик",
        },
      },
    ],
  },
  оптимизация: {
    свести к минимуму: правда,
  },
  плагины: [
    новый webpack.DefinePlugin({
      "процесс.env": {
        NODE_ENV: JSON.stringify("производство"),
      },
    }),
  ],
};

Я думаю, что это связано с символическими ссылками, но я не хочу тратить часы на отладку чего-то, чего не понимаю. Я просто надеюсь, что кто-то может найти и ответить на это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.