嵌套的@import CSS语句未使用rollup-plugin-postcss进行汇总

问题描述 投票:1回答:1

我将此源文件作为src/mike.js

import '@ckeditor/ckeditor5-ui/theme/globals/globals.css'
export default function () {
    console.log('Hello world');
} 

@ckeditor/ckeditor5-ui/theme/globals/globals.css看起来像这样:

@import "./_hidden.css";
@import "./_reset.css";
@import "./_zindex.css";

而且我有此汇总配置:

import resolve from 'rollup-plugin-node-resolve';
import postcss from 'rollup-plugin-postcss'


export default {
    input: 'src/mike.js',
    output: {
        file: 'public/bundle2.js',
        format: 'cjs'
    },
    plugins: [resolve(), postcss({
        plugins: []
    })]
};

public/bundle2.js汇总如下:

'use strict';

function styleInject(css, ref) {
  // plugin function, removed for clarity
}

var css = "/*\n * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"./_hidden.css\";\n@import \"./_reset.css\";\n@import \"./_zindex.css\";\n";
styleInject(css);

function mike () {
    console.log('Hello world');
}

module.exports = mike;

因此rollup-plugin-postcss在此处未遵循嵌套的@import语句。

如何进行这项工作?

postcss rollupjs
1个回答
0
投票

好的,答案是PostCSS本身需要插件来处理@import语句。因此,您需要的汇总配置是:

import resolve from 'rollup-plugin-node-resolve';
import postcss from 'rollup-plugin-postcss'

import postcssImport from 'postcss-import';


export default {
    input: 'src/mike.js',
    output: {
        file: 'public/bundle2.js',
        format: 'cjs'
    },
    plugins: [resolve(),
        postcss({
            plugins: [postcssImport()]
        })]
};
© www.soinside.com 2019 - 2024. All rights reserved.