Skip to content

Instantly share code, notes, and snippets.

@paulwellnerbou
Last active January 17, 2019 18:38
Show Gist options
  • Save paulwellnerbou/fd6e81bad2e6975d2805 to your computer and use it in GitHub Desktop.
Save paulwellnerbou/fd6e81bad2e6975d2805 to your computer and use it in GitHub Desktop.
Function for SASS/SCSS to avoid duplicate imports and redundant generated CSS. See http://paul.wellnerbou.de/2015/05/18/avoid-multiple-imports-of-the-same-scss-file-with-sass/ for more details.
/* If this function is imported, you can import scss files using:
@if not-imported("your-file") { @import "your-file"; }
*/
$imported-once-files: () !default;
@function not-imported($name) {
$imported-once-files: $imported-once-files !global;
$module_index: index($imported-once-files, $name);
@if (($module_index == null) or ($module_index == false)) {
$imported-once-files: append($imported-once-files, $name);
@return true;
}
@return false;
}
@mritzman-dg
Copy link

I'm also getting the same error as well

ERROR in ./src/sass/index.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loader.js):

@if not-imported("helpers/import-once-workaround") { @import "helpers/import-once-workaround"; }
                                                    ^
      Import directives may not be used within control directives or mixins.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment