嵌套的@import CSS 语句未使用 rollup-plugin-postcss 汇总
Nested @import CSS statements not getting rolled up using rollup-plugin-postcss
我有这个源文件 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 本身需要插件来处理@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()]
})]
};
我有这个源文件 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 本身需要插件来处理@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()]
})]
};