首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack开发服务端无法获取

Webpack开发服务端无法获取
EN

Stack Overflow用户
提问于 2018-04-16 20:46:12
回答 1查看 9.8K关注 0票数 2

我用的是Webpack-4。当前的行为是,当运行webpack-dev-server时,/build下的文件根本不会更新,它显示的是文件目录。

如果我删除/build下的文件,webpack-dev-server给出的文件不能获取/。我假设,它应该从内存中加载它们。

代码语言:javascript
复制
const HtmlWebPackPlugin = require("html-webpack-plugin");
const htmlPlugin = new HtmlWebPackPlugin({
   template: "./src/index.html",
   filename: "./index.html"
});

const path = require('path');

module.exports = {
output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'build/'),
},

module: {
    rules: [{
            test: /\.(js|jsx)$/,
            exclude: /node_modules/,
            use: {
                loader: "babel-loader",
                options: {
                    presets: ["env","react"]
                }
            }
        },
        { 
            test: /\.html$/,
            use: [{
                loader: "html-loader",
                options: {
                    minimize: true
                }
            }]
        }
    ]
},
plugins: [
    htmlPlugin
],
devServer: {       
    contentBase: "./build/",
    port: 5555
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 01:00:32

下面是一些帮助我理解和调试本地webpack-dev-server配置的技巧:

  1. 要查看文件由webpack提供的(在内存中)位置,请在浏览器中键入http://localhost:{yourport}/webpack-dev-server。然后你可以点击其中一个文件(链接),它会向你显示提供服务的路径和文件的内容。
  2. 当你启动npm -dev-server(即使用npm
  3. )时,它会在控制台中显示它基于你的webpack.config.js文件提供的内容。(有关您想要热重新加载的详细explanation)
  4. If,请参阅下面的内容(我看不出为什么不),您需要在命令行(在package.json启动脚本中)而不是在配置文件中指定它。由于某些原因,将其放入配置文件不起作用。所以使用如下代码:

package.json

代码语言:javascript
复制
"scripts": {
    "start": "webpack-dev-server --config webpack.config.js --hot --inline"
},

webpack.config.js配置

代码语言:javascript
复制
...
output: {
    filename: '[name].bundle.js',
    path: path.join(__dirname, 'public', 'scripts'),
},
...
devServer: {
    contentBase: path.join(__dirname, "public"),
    publicPath: 'http://localhost:8080/scripts/',
    port: 8080
},
...

输出

代码语言:javascript
复制
 i 「wds」: Project is running at http://localhost:8080/    
 i 「wds」: webpack output is served from http://localhost:8080/scripts/
 i 「wds」: Content not from webpack is served from C:\Workspace\WebSite\public

在输出的第2行,请注意,由于配置中的contentBasehttp://localhost:8080/scripts/实际上指向磁盘上的C:\Workspace\WebSite\public\scripts。(这就是webpack也会放文件的地方:)!)

publicPath配置中,尾部的反斜杠很重要。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49857724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档