Если запустить веб-пакет программно, он не находит модуль - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу использовать 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...
});

Важно :

  1. Если попытаться построить проект B, использующий webpack cli (через npm), без ошибок.
  2. Проект A на основе Электрон .
  3. Использование версии библиотеки в обоих проектах: babel-loader ^ 8.1.0, @ babel / core ^ 7.9.0, веб-пакет ^ 4.42.1, электрон ^ 8.2.1 (электрон только в проекте A)
  4. Файл пакета создан
  5. Пакет * 1 045 * файл используется в HTML файле
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...