Webpack-dev-子目录中的服务器-未编译&不热重装 [英] Webpack-dev-server in sub directory - not compiling & no hot reloading
本文介绍了Webpack-dev-子目录中的服务器-未编译&不热重装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在子目录(公共)中运行webpack开发服务器,这样我就可以将Reaction集成到现有站点中。
Repo - minimal-react-webpack-starter
当我使用npm run start
从子目录运行它时,热重新加载或编译工作都不起作用,但当我在没有--content-base
或devServer.publicPath
的情况下从根目录运行它们时,它工作得很好。
文件夹结构-
|- App/
|- node-modules/
|- public/
|- react/
|- main.js
|- index.html
|- shared/
|- react/
|- components/
|- main.js
|- package.json
|- webpack.config.js
index.html包含<script src="react/main.js"></script>
webpack配置-
const path = require('path');
const config = {
entry: './shared/react/main.js',
output: {
publicPath: "public/react",
path: path.resolve(__dirname, 'public/react'),
filename: 'main.js',
},
module: {
loaders: [
{ test: /.js$/, loader: 'babel-loader', exclude: /node_modules/ },
{ test: /.jsx$/, loader: 'babel-loader', exclude: /node_modules/ }
]
},
devServer: {
inline: true,
publicPath: "public/",
contentBase: path.join(__dirname, "public"),
hot: true,
port: 8080,
},
}
pacakge.json-
{
"name": "App",
"version": "1.0.0",
"repository": "Ash-repo",
"description": "App",
"devDependencies": {
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"path": "^0.12.7",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"webpack": "^2.5.0",
"webpack-dev-server": "^2.4.5"
},
"scripts": {
"start": "webpack-dev-server --content-base public/ --hot --progress --colors",
"watch": "webpack --progress --colors --watch",
"test": "echo "Error: no test specified" && exit 1"
}
}
我不明白为什么它不能编译或重新加载,我已经将publicPath
(在输出和DevServer中)和content-base
设置为指向Public。我查看了http://localhost:8080/webpack-dev-server/
和http://localhost:8080/
,但没有重新加载或编译!
如有任何帮助,不胜感激!👍
推荐答案
webpack配置似乎不正确。如果是子目录,使用下面的webpack配置可以实现热重载。
const path = require('path');
const config = {
entry: './shared/react/main.js',
output: {
publicPath: "public/react",
path: path.resolve(__dirname, 'public/react'),
filename: 'main.js',
},
module: {
loaders: [
{ test: /.js$/, loader: 'babel-loader', exclude: /node_modules/ },
{ test: /.jsx$/, loader: 'babel-loader', exclude: /node_modules/ }
]
},
devServer: {
inline: true,
publicPath: "/react/",
contentBase: path.join(__dirname, "public"),
hot: true,
port: 8070
}
}
devServer.Public Path是这里的重要更改。有关更多信息,请访问webpack的官方文档here
我希望这会有帮助!
这篇关于Webpack-dev-子目录中的服务器-未编译&不热重装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文