У меня возникли некоторые проблемы с добавлением реакции на устаревшее приложение. Несмотря на то, что я нашел много материалов по началу работы, я столкнулся с множеством проблем, связанных с моей конкретной конфигурацией, и усугубился полным отсутствием у меня знаний о веб-пакетах (так много времени, которое приходится полагаться на инструменты реагирования, делает один недостаток).
Моя конфигурация:
./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, он будет работать как положено.
Есть ли что-то Я скучаю?
Спасибо!