Я хочу использовать webpack-api в своем электронном приложении для создания внешнего веб-проекта.
Я решил использовать webpack API в моем приложении, но webpack не может найти загрузчик babel.
Я создал простой репозиторий для воспроизведения ошибки: репозиторий
Абстрактное представление проекта (A - электронное приложение, B - веб-проект для сборки)
Ошибка msg:
main.js:1 Uncaught Error: Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: Cannot find module 'D:\User\B\node_modules\babel-loader\lib\index.js'
at eval (webpack:///./node_modules/loader-runner/lib_lazy_namespace_object?:5)
at eval (main.js:1)
Базовая структура обоих проект:
Project A:
- main.js
- node_modules/
- webpack.config.js
Project B:
- main.js
- node_modules/
- webpack.config.js
Каждый проект независим и имеет все инструменты для разработки (например, веб-пакет)
Моя конфигурация веб-пакета в проекте А для запуска веб-пакета (если я использовал '/' в пути I получить ошибку схемы API в веб-пакете):
module.exports = {
mode: "development",
target: "web",
entry: "D:\\User\\B\\src\\main.js",
context: "D:\\User\\B\\",
output: {
path: "D:\\A",
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.(js)$/i,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
],
},
resolve: {
modules: [
'D:\\User\\B\\node_modules', //the same error if remove this line
],
},
stats: {
errorDetails: true
},
}
Запустить веб-пакет:
const webpack = require('webpack');
const config = require('./webpack.config');
const compiler = webpack(config);
compiler.run((err, stats) => {
//output errors...
});
Важно :
- Если попытаться построить проект B, использующий webpack cli (через npm), без ошибок.
- Проект A на основе Электрон .
- Использование версии библиотеки в обоих проектах: babel-loader ^ 8.1.0, @ babel / core ^ 7.9.0, веб-пакет ^ 4.42.1, электрон ^ 8.2.1 (электрон только в проекте A)
- Файл пакета создан
- Пакет * 1 045 * файл используется в HTML файле