docker的webpack-dev-server问题

时间:2019-05-06 13:37:13

标签: docker webpack-dev-server

我在使用webpack-dev-server进行热重载时遇到麻烦,使用docker。

我使用symfony的webpack-encore,因为我正在将反应组件集成到树枝模板中(通过limnius react bundle)。

但是当我启动命令时: yarn encore dev-server --hot --config-name=app

我无法访问我的app.js ...

我已经尝试了很多东西,但是对我来说,最好的尝试是:

我的webpack.config.js:

Encore.reset();
Encore.setOutputPath('web/build/front/')
  .setPublicPath('/build/front')
  .addEntry('app', ['./path/to/client.js'])
  .enableReactPreset()
  .enableSassLoader()
  .configureBabel(babelConfig => {
    babelConfig.presets.push('airbnb');
    babelConfig.plugins.push('@babel/plugin-proposal-class-properties');
    if (Encore.isProduction()) {
      babelConfig.plugins.push('transform-react-remove-prop-types');
    }
  })
  .configureDefinePlugin(options => ({
    ...options,
    'process.env': Object.assign(envKeys, options['process.env']),
  }))
  .enableSourceMaps(!Encore.isProduction())
  .enableVersioning(Encore.isProduction())
  .cleanupOutputBeforeBuild()
  .disableSingleRuntimeChunk();
const client = Encore.getWebpackConfig();
client.name = 'app';
client.devServer = {
  public: 'http://my.project.localhost',
  host: 'my.project.localhost',
  port: 80,
  contentBase: `${__dirname}/web/build/front/`,
  hot: true,
};

我的命令: $ /srv/project/node_modules/.bin/encore dev-server --hot --config-name=app --output-public-path=http://my.project.localhost/build/front/

我的结果:

Running webpack-dev-server ...

ℹ 「wds」: Project is running at http://my.project.localhost/
ℹ 「wds」: webpack output is served from http://my.project.localhost/build/front/
ℹ 「wds」: Content not from webpack is served from /srv/project/web/build/front/
 DONE  Compiled successfully in 1958ms                                                                                                                                                                                                                                            13:23:01

ℹ 「wdm」: Entrypoint app [big] = app.css app.js
ℹ 「wdm」: Compiled successfully.


然后,如果我尝试加载我的URL: http://my.project.localhost/build/front/app.js

404,未找到任何内容。我在做什么错了?

如果我很好理解,webpack开发服务器不会在build / front /中物理编译我的js(如基本的webpack),而是在由webpack开发服务器创建的服务器上的内存中编译文件?而且我应该能够通过一个很好的URL访问该文件。没有这个技巧,我不能使用热重装吗? 顺便说一句,我尝试使用--host ='0.0.0.0',结果相同。

非常感谢大家!

0 个答案:

没有答案