javascript - 当有多个链式加载器时,一致的 webpack 选项

标签 javascript webpack

在 webpack 中,一些加载器具有查询选项:

module: {
    loaders: [
        {
            test:   /\.css$/,
            loader: `css?minimize&root=${path.resolve('.')}!postcss`
        }
    ]
},

以及其他人在自己的部分,例如postcss

module: {
    loaders: [
        {
            test:   /\.css$/,
            loader: "style!css!postcss"
        }
    ]
},
postcss: function () {
    return [autoprefixer, precss];
}

有没有办法将所有加载器选项移至 postcss 等主选项中,而不是使用查询来确保一致性?理想情况下,以下内容可行:

module: {
    loaders: [
        {
            test:   /\.css$/,
            loader: "style!css!postcss"
        }
    ]
},
css: {
    minimize: true,
    root: path.resolve('.')
}
postcss: function () {
    return [autoprefixer, precss];
}

[编辑]似乎有一些“解决方法”here从2014年开始,但没有真正的解决方案。

最佳答案

如果你能做到这一点:

{
    test: /\.png$/,
    loader: "url-loader",
    query: { mimetype: "image/png" }
}

那么你应该能够做到这一点:

const URL_LOADER_CONFIG = { mimetype: "image/png" }

module.exports = {
  // ...
  {
    test: /\.png$/,
    loader: "url-loader",
    query: URL_LOADER_CONFIG
  }
}

但我不确定它如何与多个加载器一起工作。

根据 workarounds you mentiondocs您还可以内联 JSON:

const URL_LOADER_CONFIG = { mimetype: "image/png" }
const OTHER_LOADER_CONFIG = { other: "config" }

const q = (config) => JSON.stringify(q)

module.exports = {
  // ...
  {
    test: /\.png$/,
    loader: `url-loader?${q(URL_LOADER_CONFIG)}!other-loader?${q(OTHER_LOADER_CONFIG)}`
  }
}

关于javascript - 当有多个链式加载器时,一致的 webpack 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941931/

相关文章:

javascript - 有没有办法将一张图片分布在可折叠的 div 及其父 div 中?

javascript - 在所有嵌套组件上使用 React i18next

javascript - 使用 CSS 为鼠标光标分配颜色

javascript - Webpack开发服务器: [HMR] Update failed: Error: Failed to fetch update manifest Internal Server Error

javascript - AngularJS 和 Webpack 集成

javascript - jQuery 和 JavaScript

javascript - 如何在 JavaScript 中查找文本框值

angular - url-loader 不适用于 angular 8 的自定义 webpack

angular - 错误 : Can't resolve all parameters for Location: (? ) 在 angular7 webpack 应用程序中

javascript - 设置 Webpack 和 Babel 来转译/填充旧代码