Я работаю над упаковкой своего проекта в SDK с помощью веб-пакета.В проекте используется React на стороне клиента и Node.js + express для бэкенда.Поэтому я пытаюсь связать и мой внешний, и внутренний код.
Что я сделал до сих пор: Я запускаю проект без веб-пакета.Так что мои коды были подтверждены для работы.Я был в состоянии связать их обоих в веб-пакет, не вызывая ошибки.Когда я иду "npm run start", клиентская сторона отображается правильно.Однако код на стороне сервера, похоже, не запускается.
Мой webpack.config.js:
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const HtmlWebPackPlugin = require("html-webpack-plugin");
const nodeExternals = require("webpack-node-externals");
module.exports = [
{
/*Client Side bundle*/
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.html$/,
use: {
loader: "html-loader",
options: { minimize: true }
}
},
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader,"css-loader"]
}
]
},
plugins: [
new HtmlWebPackPlugin({
template: "./public/index.html",
filename:"./index.html"
}),
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename:"[id].css"
})
]
},
{
/*Config for backend code*/
entry: './src/server/server.js',
target: 'node',
output: {
filename: 'server.js'
},
externals: [nodeExternals()]
}
]
Мой package.json:
"scripts": {
"start": "webpack-dev-server --open --mode development",
"dev": "webpack --mode development",
"build": "webpack --mode production",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": {
"/*": {
"target": "http://localhost:3001"
}
},
"devDependencies": {
"@babel/core": "^7.1.6",
"@babel/preset-env": "^7.1.6",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.4",
"css-loader": "^1.0.1",
"html-loader": "^0.5.5",
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.4.4",
"webpack": "^4.25.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.10",
"webpack-node-externals": "^1.7.2"
}
}
После того, как язапустить npm запустить сборку, моя папка dist
генерирует main.js
и server.js
.Когда я запускаю npm, запускаю запуск.Клиентская сторона работает нормально.Тем не менее, когда я пытаюсь вызвать конечную точку на node.js.Это дает мне POST http://localhost:8080/test 404 (Not Found)
.
В чем мне нужна помощь: Я пытаюсь запустить свой внутренний код с помощью Webpack.Одна вещь, которую я заметил, это то, что когда я запускаю свой проект без, локальный хост был установлен на localhost:3000
.Когда я запускал его через веб-пакет, это было localhost:8080
.В файле package.json я установил прокси на 3001, это была проблема?Как мне заставить мой внутренний код работать в веб-пакете?