Webpack не может найти babel-загрузчик - PullRequest
0 голосов
/ 14 февраля 2020

У меня возникли некоторые проблемы с добавлением реакции на устаревшее приложение. Несмотря на то, что я нашел много материалов по началу работы, я столкнулся с множеством проблем, связанных с моей конкретной конфигурацией, и усугубился полным отсутствием у меня знаний о веб-пакетах (так много времени, которое приходится полагаться на инструменты реагирования, делает один недостаток).

Моя конфигурация:

  • ./docs/jslib = мои node_modules, вот где пряжа устанавливает модули
  • ./docs/jscripts = моя общая папка js, различные js скрипты go там
  • ./docs/jscripts/mini = моя папка dist, некоторые вещи собираются / упаковываются gulp и заканчиваются здесь. Здесь ожидаемые значения будут составлять go
  • ./docs/jscripts/react(/react.js) = мой желаемый root для объектов реакции, где реакция. js является точкой входа для выбора и рендеринга DOM (по крайней мере, для первая попытка).

Моя конфигурация веб-пакета:

const path = require("path");

module.exports = {
    entry: "./docs/jscript/react/react.js",
    output: {
        path: path.resolve(__dirname, "./docs/jscript/mini"),
        filename: "react.js"
    },
    resolve: {
        extensions: [".js", ".jsx"],
        modules: [
            path.resolve(__dirname, "./docs/jslib")
        ],
        alias: {
            'babel-loader': path.resolve(__dirname, "./docs/jslib/babel-loader")
        }
    },
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                include: [
                    path.resolve(__dirname, "./docs/jscript/react")
                ],
                exclude: [
                    path.resolve(__dirname, "./docs/jslib")
                ],
                use: {
                    loader: "babel-loader"
                }
            }
        ]
    }
};

Ошибка при запуске веб-пакета:

yarn run v1.21.1
$ ./docs/jslib/babel-loader/node_modules/.bin/webpack --mode production

Insufficient number of arguments or no entry found.
Alternatively, run 'webpack(-cli) --help' for usage info.

Hash: 210250af48f3cf84fa4a
Version: webpack 4.41.6
Time: 75ms
Built at: 02/14/2020 9:23:09 AM

ERROR in Entry module not found: Error: Can't resolve 'babel-loader' in '/var/www/html'

У меня есть webpack-cli, Я могу запустить webpack прямо, я могу запустить его из папки bin модуля, это все та же проблема - он не может найти babel-loader, хотя babel-loader приносит свой собственный скрипт webpack, который я использую, так что загрузчик, очевидно, там в "node_modules" это на самом деле другой путь.

Из того, что я собрал, все, что мне нужно было сделать, это добавить свой собственный путь node_modules в конфигурацию webpack в настройках resolve, что решило мою проблему. первоначальные ошибки, связанные с пакетами, не найденными (но веб-пакет все еще не может найти загрузчик).

Примечание: если я сделаю символическую ссылку на мой ./docs/jslib как ./node_modules, он будет работать как положено.

Есть ли что-то Я скучаю?

Спасибо!

1 Ответ

0 голосов
/ 14 февраля 2020

После некоторых копаний я нашел решение и некоторые детали, которые другие могли бы иметь в виду при настройке веб-пакета в довольно нестандартном контексте:

  • resol: указывает на модули, которые напрямую требуется в различных скриптах
...