1

项目结构:

  1. Webpack 正在将应用程序构建到public文件夹中
  2. 同时,我在那里有一些静态资产,例如: public/assets/font-awesome-4.7.0/css/font-awesome.css

我想要的是:

  1. 我想出于开发目的运行我的express应用程序webpack-dev-middleware
  2. 我希望所有对静态资产的请求(不由 处理webpack)都从public文件夹中提供

我是如何尝试这样做的:

第一次尝试

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.htmlpublic文件夹中。如果你有它 - 将提供静态版本,而不是根据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

任何想法表示赞赏。

问候,

4

0 回答 0