如何定义内联加载器?

mpe*_*pen 5 webpack webpack-2

文档在这里给出了一个加载器的示例,旧文档说我应该能够通过返回给定的内容来定义“身份加载器”。

因此从理论上讲,添加i => i到我的加载器列表(如下所示)不应该破坏任何东西。

module: {
    rules: [
        ...
        {
            test: /\.less$/,
            use: [ i => i, ...cssLoaders, lessLoader],
        },
    ]
},
Run Code Online (Sandbox Code Playgroud)

但它会导致这个错误:

/home/me/Projects/myproj/node_modules/enhanced-resolve/lib/Resolver.js:151
    var idxQuery = identifier.indexOf("?");

                         ^
TypeError: Cannot read property 'indexOf' of undefined
Run Code Online (Sandbox Code Playgroud)

这不在我的代码中,但一定是我给 webpack 一些意想不到的东西的结果。

那么定义我可以在数组中使用的加载器(不执行任何操作)的正确语法是什么use(无需发布节点模块)?

小智 2

分解

(在阅读提供的完整代码链接之前用于理解概念的伪代码)

用于resolveLoader.alias“加载”您的加载程序

// in webpack config
resolveLoader: {
    alias: {
        'minimal-loader': require('path').resolve('./minimal-loader'),
    },
},
Run Code Online (Sandbox Code Playgroud)

然后你可以通过一个字符串来访问它,在规则中,正如你所想的,有一个数组use

  module: {
    rules: [
        {
            test: /(.*)/,
            use: [{loader: 'minimal-loader'}],
        },
    ],
},
Run Code Online (Sandbox Code Playgroud)

资源

代码

(使用最少的示例来展示如何实现这一目标,以及如何在使用它时进行调试)

  • 我可以使用这个,但它并没有回答我所说的问题。有没有办法在同一个文件(webpack.config.js)中定义加载器?仅供参考,我很确定您可以使用 `require.resolve('./minimal-loader')` 而不是使用 `path` 模块。 (7认同)