webpack-dev-middleware提供/回退到公共目录

时间:2017-06-24 12:26:23

标签: express webpack webpack-2 webpack-dev-middleware

项目结构:

  1. Webpack正在将应用构建到public文件夹
  2. 同时我在那里有一些静态资产,例如: public/assets/font-awesome-4.7.0/css/font-awesome.css
  3. 我想要的是什么:

    1. 我想使用express运行我的webpack-dev-middleware应用以用于开发目的
    2. 我希望静态资产的所有请求(webpack未处理)都来自public文件夹
    3. 我是怎么做到的:

      首次尝试

      app.use(require('webpack-dev-middleware')(compiler, {
          stats: { colors: true }
      }));
      
      app.use(require('webpack-hot-middleware')(compiler));
      app.use('/', feathers.static(app.get('public'))); // express.static
      

      这很有效,直到index.html文件夹中有public为止。如果你有 - 那么静态的那个将被提供,那个是根据webpack-dev-middleware的实际版本。

      第二次尝试

      然后我想 - 可能我只能在生产案例中使用express.static,我删除了它。现在我无法打开/assets/font-awesome-4.7.0/css/font-awesome.css

      第三次尝试(黑客现在正常工作)

      最后我做到了,但我对当前的解决方案不满意。我通过扩展webpack配置手动将所有assets目录放入webpack域:

      new CopyWebpackPlugin([
                  { from: 'public/assets/', to: 'assets' },
                  { from: 'node_modules/bootstrap/dist/', to: 'vendor/bootstrap/dist' }
              ]),
      

      然而,这种方法假设需要指出他希望由webpack-dev-middleware提供的每个静态文件

      任何想法都表示赞赏。

      此致

0 个答案:

没有答案