накопительный пакет не обнаруживает синтаксис @import для файлов scss

#javascript #reactjs #sass #rollup #rollupjs

Вопрос:

мне нужен накопительный пакет для объединения моих файлов sass, таких как переменные, миксины и т. Д. index.scss содержит

 @import "./scss/variables.scss";
 

и index.ts содержит

 import "./index.scss";
export { Button } from "./components/Button";
 

однако в пакете нет кода из variables.scss, и если я использую переменную внутри, скажем, Button.scss, я получаю эту ошибку

 [!] (plugin postcss) Error: Undefined variable: "$shady-lady".
 

моя конфигурация накопительного пакета

 export default {
  input: "./src/index.ts",
  output: [
    {
      file: packageJson.main,
      format: "cjs",
      sourcemap: true,
    },
    {
      file: packageJson.module,
      format: "esm",
      sourcemap: true,
    },
  ],
  plugins: [
    resolve(),
    cleaner({
      targets: ["./lib"],
    }),
    postcss({
      extract: true,
      modules: true,
      minimize: true,
      plugins: [postcssImport(), autoprefixer()],
      extensions: [".scss"],
    }),
    peerDepsExternal(),
    commonjs(),
    typescript({
      exclude: ["**/*.stories.tsx", "**/*.test.tsx"],
    }),
  ],
};
 

Ответ №1:

так что проблема была не в синтаксисе @import. это был накопительный пакет, не обрабатывающий файлы глобальных ресурсов.

решение состояло в том, чтобы удалить импорт». /index.scss » из index.ts и просто использовать этот пакет

https://github.com/hytromo/rollup-plugin-postcss-retain-sass-data#readme