让CSS加载器输出ES模块?

Leo*_*ang 5 javascript webpack css-loader

据我所知,CSS 加载器输出 CommonJS,它不能与 Webpack 的某些优化功能一起使用。有没有办法让CSS加载器输出ES模块(import/ export)?

编辑:

ES 模块会发生以下情况:

main.js

import { FOO } from './module';
console.log(FOO);
Run Code Online (Sandbox Code Playgroud)

输出

var FOO = 'foo';
console.log(FOO);
Run Code Online (Sandbox Code Playgroud)

并使用 CSS 加载器:

main.js

import { foo } from './styles.scss';
console.log(foo);
Run Code Online (Sandbox Code Playgroud)

输出

38: (function(module, exports, __webpack_require__) {
    module.exports = {"foo":"a"};
}),
...
var styles = __webpack_require__(38);
console.log(test["foo"]);
Run Code Online (Sandbox Code Playgroud)

Vin*_*nce 1

尝试使用post-css 加载器

$ npm install -D postcss-loader
Run Code Online (Sandbox Code Playgroud)

然后在你的webpack.config.js中:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          { loader: 'css-loader', options: { importLoaders: 1 } },
          'postcss-loader'
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)