Ошибка в модуле ввода не найдена — в файле конфигурации Webpack

#reactjs #webpack #webpack-dev-server #webpack-2 #webpack-4

#reactjs #webpack #webpack-dev-server #webpack-2 #webpack-4

Вопрос:

Я пытаюсь настроить webpack для ReactJS. Я не понимаю, что не так с моим файлом конфигурации Webpack, который дает мне

ОШИБКА в модуле ввода не найдена: Ошибка: не удается разрешить ‘./src’ в ‘D:wdjavascriptProjectsreactjs-basics

КОД ЗДЕСЬ — Два файла «Webpack.config.js » и «Package.json»

Webpack.config.js код :

 var webpack = require('webpack');
var path = require('path');

var DIST_DIR = path.resolve(__dirname,'dist');
var SRC_DIR = path.resolve(__dirname,'src');

var config = {
    entry: SRC_DIR '/app/index.js',
    output:{
        path:DIST_DIR '/app',
        filename:'bundle.js',
        publicPath:'/app/'
    },
    module:{
        rules: [
            {
                test: /.js?/,
                include: SRC_DIR,
                use:{
                    loader:'babel-loader',
                    query:{
                        presets:['react','es2015','stage-2']
                    }
                }
            }
        ]
    },
    mode: 'development',
    watch: true

}

module.export = config;
  

Файл Package.json является

 {
  "name": "reactjs-basics",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": " npm run build",
    "build": "webpack -d amp;amp; copy src\app/index.html dist\index.html amp;amp; webpack-dev-server --content-base src\ --inline --hot",
    "build:prod": "webpack -p amp;amp; cp src\app/index.html dist\index.html"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6"
  },
  "devDependencies": {
    "2015": "0.0.1",
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.5",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.3.0",
    "webpack-dev-server": "^3.2.1"
  }
}
  

**

для справки, структура папок с кодом конфигурации Webpack у меня есть изображение ниже

**

Пожалуйста, нажмите здесь, чтобы структура папок, код и структура папок сопоставлены

Комментарии:

1. измените свой объект ввода на entry: './src/app/index.js' и проверьте, работает ли он, выполнив скрипт webpack

2. @divine протестировал это, это не сработало 🙁

3. можете ли вы поделиться ссылкой git на свою кодовую базу?

4. @divine вот моя ссылка на git github.com/avvncor/reactJs-basics

5. @divine, он скомпилирован, спасибо. Мой локальный хост не работает. Это не говорит мне, что «результатом Webpack является сервер из приложения»

Ответ №1:

Вам нужно изменить несколько вещей

  • В вашем webpack.config.js у вас есть module.export . Это неверно. это должно быть module.exports
  • Вы используете babel-core@6.26.3 с babel-loader@8.0.5 . babel-loader@8.* не совместим с babel-core@6.* . Вы должны использовать babel-loader@7 . Удалите существующий babel-loader с помощью npm uninstall -D babel-loader и установите babel-loader@7 с помощью npm install -D babel-loader@7

Еще одна вещь, которую я отметил, это то, что вы указали mode: 'development' в своем webpack.config.js . его лучше установить mode to development or production через параметры времени выполнения

Обновить

Удалите mode amp; watch из вашего webpack.config.js

 mode: 'development',
watch: true
  

Обновите свой package.json с помощью приведенных ниже сведений.

Режим разработки вам не нужно устанавливать, watch amp; mode as webpack-dev-server сделает это за вас при запуске npm run dev

 "scripts": {
    "webpack": "webpack",
    "dev": "mkdir -p dist amp;amp; cp ./src/index.html dist/index.html amp;amp; webpack-dev-server",
    "prod": "mkdir -p dist amp;amp; cp ./src/index.html dist/index.html amp;amp; npm run webpack -- --mode production"
}
  

Для запуска local server вам необходимо добавить в свою webpack.config.js конфигурацию ниже. Обратите внимание на то, directory name на что devserver указывает.

 devServer: {
    contentBase: path.join(__dirname, "dist/"),
    port: 9000
},
  

Рабочий режим Выполните npm run prod для сборки вашего проекта в рабочем режиме

Вы можете видеть localhost в рабочем состоянии при запуске npm run dev .Этот сервер запускается webpack-dev-server библиотекой. Для production build вы должны настроить свой собственный сервер

Дайте мне знать, если это поможет

Комментарии:

1. @AmaanImtiyaz Вы можете видеть localhost в рабочем состоянии при вашем запуске npm run dev .этот сервер запускается webpack-dev-server библиотекой. Для production build вы должны настроить свой собственный сервер

2. @devine это не сработало, я обновил свой git, который вы можете увидеть и исправить оттуда

3. @AmaanImtiyaz я рекомендую вам удалить все из вашего scripts in package.json . затем скопируйте код «scripts» из моего ответа, затем вставьте его в свой scripts in package.json . Затем выполните npm run dev . Вы используете copy команду вместо cp переноса copy файлов из одной папки в другую. Что OS вы используете?

4. @AmaanImtiyaz затем попробуйте это для тестирования, если ваш проект работает нормально, позже вы сможете сделать его плавным. вручную создайте dist папку внутри вашего проекта. скопируйте это scripts и используйте в своем проекте для тестирования. «скрипты»: { «webpack»: «webpack», «dev»: «webpack-dev-server», «prod»: «npm запускает webpack — —режим производства» }

5. @AmaanImtiyaz не забудьте переместить свою index.html в dist папку. вы должны найти альтернативные команды для copy files и create directory в Windows