#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'
и проверьте, работает ли он, выполнив скрипт webpack2. @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
inpackage.json
. затем скопируйте код «scripts» из моего ответа, затем вставьте его в свойscripts
inpackage.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