Webpack 开发服务器 - 运行 多个端口上的多个应用程序
Webpack dev server - run multiple apps on multiple ports
目前我 运行 两个应用程序位于同一个存储库中。
第一个 运行 在 /
上,另一个在 port 3000
上(不同 HTML 个文件)。
我想制作另一个应用 运行 在 port 5000
上(有自己的 HTML 文件)。
我该怎么做?
这是我的 Webpack 配置:
entry: {
mainApp: "./MainApp.js",
appNumberTwo: "./AppNumberTwo.js"
},
devServer: {
port: 3000,
host: '0.0.0.0',
headers: {
"Access-Control-Allow-Origin": "*"
},
historyApiFallback: {
index: publicPath + 'app_number_2.html',
},
proxy: [{
target: "http://www.dev.mydomain.com"
}]
},
这是一种方法。你可以像这样尝试使用多个编译器,
//webpack.config.js
[{
entry: "./entry1.js",
output: {
filename: "outpu1.js"
}
}, {
entry: "./entry2.js",
output: {
filename: "outpu2.js"
}
}]
然后像这样创建一个节点脚本,
const WebpackDevServer = require("webpack-dev-server")
const webpack = require("webpack")
const config = require("./webpack.config")
const compiler = webpack(config)
const server1 = new WebpackDevServer(compiler.compilers[0], {
contentBase: __dirname,
hot: true,
historyApiFallback: false,
compress: true,
})
const server2 = new WebpackDevServer(compiler.compilers[1], {
contentBase: __dirname,
hot: true,
historyApiFallback: false,
compress: true,
})
server1.listen(3000, "localhost", function() {})
server2.listen(5000, "localhost", function() {})
您为每个 compiler
创建一个 webpack-dev-server
实例。
您可以这样做的其他方法是在您的 package.json 中编写多个脚本,如下所示:
{
"scripts":{
"serve1": "webpack-dev-server --content-base <file/directory/url/port> --port 3000",
"serve2": "webpack-dev-server --content-base <file/directory/url/port> --port 5000"
}
}
然后 运行 两个脚本都使用 npm-run-all
、
npm-run-all serve1 serve2
package.json
中的两个节点实例
"scripts": {
"dev": "NODE_ENV=dev node ./node_modules/.bin/webpack-dev-server --watch --mode=development --config-name='survey' & NODE_ENV=dev node ./node_modules/.bin/webpack-dev-server --watch --mode=development --config-name='account'",
"build": "node ./node_modules/.bin/rimraf ./dist && node ./node_modules/.bin/webpack-cli --mode=production"
},
这是两个不同的配置。在每个配置中都有不同的开发配置
const account = require("./account.config");
const survey = require("./survey.config");
module.exports = [account, survey];
目前我 运行 两个应用程序位于同一个存储库中。
第一个 运行 在 /
上,另一个在 port 3000
上(不同 HTML 个文件)。
我想制作另一个应用 运行 在 port 5000
上(有自己的 HTML 文件)。
我该怎么做?
这是我的 Webpack 配置:
entry: {
mainApp: "./MainApp.js",
appNumberTwo: "./AppNumberTwo.js"
},
devServer: {
port: 3000,
host: '0.0.0.0',
headers: {
"Access-Control-Allow-Origin": "*"
},
historyApiFallback: {
index: publicPath + 'app_number_2.html',
},
proxy: [{
target: "http://www.dev.mydomain.com"
}]
},
这是一种方法。你可以像这样尝试使用多个编译器,
//webpack.config.js
[{
entry: "./entry1.js",
output: {
filename: "outpu1.js"
}
}, {
entry: "./entry2.js",
output: {
filename: "outpu2.js"
}
}]
然后像这样创建一个节点脚本,
const WebpackDevServer = require("webpack-dev-server")
const webpack = require("webpack")
const config = require("./webpack.config")
const compiler = webpack(config)
const server1 = new WebpackDevServer(compiler.compilers[0], {
contentBase: __dirname,
hot: true,
historyApiFallback: false,
compress: true,
})
const server2 = new WebpackDevServer(compiler.compilers[1], {
contentBase: __dirname,
hot: true,
historyApiFallback: false,
compress: true,
})
server1.listen(3000, "localhost", function() {})
server2.listen(5000, "localhost", function() {})
您为每个 compiler
创建一个 webpack-dev-server
实例。
您可以这样做的其他方法是在您的 package.json 中编写多个脚本,如下所示:
{
"scripts":{
"serve1": "webpack-dev-server --content-base <file/directory/url/port> --port 3000",
"serve2": "webpack-dev-server --content-base <file/directory/url/port> --port 5000"
}
}
然后 运行 两个脚本都使用 npm-run-all
、
npm-run-all serve1 serve2
package.json
中的两个节点实例"scripts": {
"dev": "NODE_ENV=dev node ./node_modules/.bin/webpack-dev-server --watch --mode=development --config-name='survey' & NODE_ENV=dev node ./node_modules/.bin/webpack-dev-server --watch --mode=development --config-name='account'",
"build": "node ./node_modules/.bin/rimraf ./dist && node ./node_modules/.bin/webpack-cli --mode=production"
},
这是两个不同的配置。在每个配置中都有不同的开发配置
const account = require("./account.config");
const survey = require("./survey.config");
module.exports = [account, survey];