是否可以使用汇总来仅处理 css?

Ren*_*ado 4 css rollup sass post-processing rollupjs

我知道 Rollup 用于捆绑 .js 文件。但是是否可以仅使用它来处理 css?(css、scss、less 等)。我的意思是,如果我的 src 文件夹(入口文件夹)中有一个名为 index.css 的文件,并且我希望汇总在 dist 文件夹(输出文件夹)中处理它,如 index.css(但已处理,例如如果有一个导入的 .sass 文件或 css 变量)。我怎样才能做到这一点?

示例rollup.config.js

import { uglify } from 'rollup-plugin-uglify'
import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resolve';
import postcss from 'rollup-plugin-postcss'

const config = [
  {
    input: 'src/styles/index.scss',
    output: {
      file: 'dist/style.css',
      name: "style",
    },
    plugins: [
      postcss({
        plugins: []
      })
    ]
  },
];

export default config
Run Code Online (Sandbox Code Playgroud)

src/index.css

@import 'other';

h1 {
  color: green;
}
Run Code Online (Sandbox Code Playgroud)

源代码/其他.css

h2 {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

并且在 dist 文件夹中应该是一个 index.css ,其中包含两个 css 文件(和已处理)的所有代码。像这样的东西: dist/index.css

h1 {
  color: green;
}
h2 {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

Ivá*_*sta 5

你需要这样的东西

import { uglify } from 'rollup-plugin-uglify'
import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resolve';
import postcss from 'rollup-plugin-postcss'

const config = [
  {
    input: 'src/styles/index.scss',
    output: {
      file: 'dist/style.css',
      format: 'es'
    },
    plugins: [
      postcss({
        modules: true,
        extract: true
      })
    ]
  },
];

export default config
Run Code Online (Sandbox Code Playgroud)

  • 如果我使用输出选项“file”,我总是收到警告“发出的文件“Filename.css”会覆盖以前发出的同名文件。”如果我使用“dir”选项而不是“file”选项,我还得到了一个几乎空的 js 文件。有没有办法避免警告或者不写js文件? (2认同)