首页 > 解决方案 > 在Vue中将scss变量导入打字稿

问题描述

我正在尝试将 SASS (scss) 变量导入到 typescript Vue 3 项目中的 javascript 中:

// @/assets/styles/colors.scss
$white: #fff;
// @/assets/styles/_exports.scss
@import "./colors.scss";

:export {
  white: $white;
}
<template>
  <div>
  </div>
</template>
<script lang="ts">
import colors from "@/assets/styles/_export.scss";
</script>
// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      sass: {
        prependData: '@import "@/assets/styles/colors.scss";'
      }
    }
  }
};

但我得到了Cannot find module '@/assets/styles/_export.scss' or its corresponding type declarations.

有什么想法吗?

谢谢

标签: typescriptvue.jssass

解决方案


shims-scss.d.ts我在目录中创建了一个名为的声明文件src

// shims-scss.d.ts

declare module '*.scss' {
  const content: {[className: string]: string};
  export default content;
}

正如您所写的scss那样,我可以从文件中导入对象。_exports.scss


推荐阅读