javascript - Webpack devServer 在 Chrome 上加载不同的项目
问题描述
我有一个使用 Webpack 的前端项目,其中 devServer 让我对 Chrome 感到头疼:我所看到的只是我大约 2 个月前从事的一个项目。我在 Windows 10 上-不确定是否重要。
这是我完整的 webpack.dev.js 配置——应该不会太复杂。我删掉了样式加载器,因为它有很多行,但他们不应该关心这个问题。
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
devtool: 'inline-source-map',
devServer: {
// here I use contentBase because I need to serve some static files (font-awesome mainly)
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 8080,
host: 'localhost',
hot: true,
open: true,
publicPath: 'http://localhost:8080/dist/'
},
entry: {
app: './js/index.js'
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.css$/,
use: [
{
loader: 'style-loader'
}
//cut for simplicity
]
},
{
test: /\.(png|svg|jpg|gif|ico)$/,
use: [
{
loader: 'file-loader'
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'index.html'
}),
new webpack.HotModuleReplacementPlugin()
]
};
这是 package.json
"scripts": {
"build": "webpack --config webpack.prod.js",
"start": "webpack-dev-server --config webpack.dev.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"@babel/core": "^7.0.0-beta.52",
"@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.52",
"@babel/preset-env": "^7.0.0-beta.52",
"babel-loader": "^8.0.0-beta.4",
"bootstrap": "^4.1.1",
"clean-webpack-plugin": "^0.1.19",
"css-loader": "^1.0.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"file-loader": "^1.1.11",
"font-awesome": "^4.7.0",
"html-webpack-plugin": "^3.2.0",
"jquery": "^3.3.1",
"jquery-ui": "^1.12.1",
"node-sass": "^4.9.2",
"popper.js": "^1.14.3",
"sass-loader": "^7.0.3",
"style-loader": "^0.21.0",
"url-loader": "^1.0.1",
"webpack-dev-server": "^3.1.4"
},
"devDependencies": {
"jest": "^23.3.0",
"eslint": "^5.0.1",
"eslint-plugin-import": "^2.13.0",
"eslint-plugin-node": "^6.0.1",
"eslint-plugin-promise": "^3.8.0",
"eslint-plugin-standard": "^3.1.0",
"webpack": "^4.15.1",
"webpack-cli": "^3.0.8",
"npm-run-all": "^4.1.3",
"eslint-config-standard": "^11.0.0"
},
所以,问题是:当我运行时npm start
——它只是通过指定配置文件来调用 webpack——项目成功构建,并且 devServer 似乎可以正常工作。
如果我localhost:8080
在 Firefox 上导航,一切正常,但如果我用 Chrome 导航到同一个位置,我唯一能看到的是create-react-app
我在大约 2-3 个月前工作的 React 项目(从 弹出)。
如果我更改 devServer 的目标端口,一切都很好,它也可以在 Chrome 中正确加载,但是一旦我使用端口 8080,我就会看到旧的 React 项目。
主要问题是我真的没有办法在另一台机器上重现它。
我知道我可以使用不同的端口,但这并不是真正的解决方案,它更像是一个临时补丁:)
此配置中是否有任何内容表明可以加载一些旧代码,或者它没有被清除?这是 Chrome 的某种错误吗?
如果它有任何用处,Chrome 已经安装了 React 开发者工具——这可能是罪魁祸首吗?
PS:如果有人想知道,我确实使用任务管理器关闭了所有正在运行的节点实例,并且在过去几个月中我多次重新启动了我的机器:)
编辑:我可能已经太快说这个配置适用于 Firefox。这似乎是在拉入使用生产脚本构建的捆绑包......
EDIT2:添加了 package.json
解决方案
推荐阅读
- c# - 在添加数字时对 C# 数组进行排序
- python - 如何用python3迭代字典列表
- ionic-framework - Ngx-translate build prod issues in IONIC 4
- javascript - 将 Unity3D json 转换为 Javascript Object json 格式
- python - 将文本文件转换为没有索引的 csv 文件
- javascript - 如何知道easyTimer 是否停止?
- groovy - 如何通过具有条件的地图中的数据从列表中获取对象并使用 Groovy 保存到另一个地图
- javascript - 显示/隐藏密码与我的 css 代码混淆
- java - 启动 Spring Boot 应用程序时如何解决 Gson builder 错误
- javascript - JavaScript 的 onscroll() 函数有问题