首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue插件开发-全球导入SCSS

Vue插件开发-全球导入SCSS
EN

Stack Overflow用户
提问于 2022-01-26 15:01:57
回答 1查看 107关注 0票数 0

我正在开发一个Vue插件,并试图导入和使用一个SCSS文件(而SCSS文件中又包含了大量其他SCSS导入)。因此,理想情况下,我希望为插件导入和注入SCSS文件。

我尝试了以下方法(但它们不起作用):

1.使用vue.config.js

代码语言:javascript
复制
module.exports = {
    css: {
        loaderOptions: {
            scss: {
                prependData: `@import "@/assets/scss/main.scss";`,
            },
        },
    },
}

此方法在构建插件时不绑定样式。在构建中没有保留任何样式。

2.只需在插件模块中导入

代码语言:javascript
复制
import MyComponent from "./plugin/MyComponent.vue";
import "./assets/main.scss"; // Tried it here

export default {
    install: (app: any): void => {
        require("./assets/main.scss"); // And here as well
        app.component("my-component", MyComponent);
    },
};

这种方法也不起作用,甚至在开发时直接插入插件时也是如此。

3.导入插件组件

我在插件中使用的每个组件中导入了SCSS文件。例如,在MyComponent.vue中,我可以使用:

代码语言:javascript
复制
<template>...</template>
<style>
@import "../assets/main.scss";
</style>

在这种情况下,它也不起作用。

在全球范围内导入SCSS文件并使其在插件中工作的正确方法是什么?

编辑:

在已安装的插件中,我可以看到有一个打包的CSS文件,但我不知道为什么它没有被应用。类名也包含所有字体导入和其他内容。但它没有被应用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 23:12:45

通过在extract: false中添加css来解决问题。这条线花了我14个小时才弄清楚,我希望其他人不用再经历这场混乱了。以下是完整的配置:

代码语言:javascript
复制
module.exports = {
    css: {
        loaderOptions: {
            scss: {
                prependData: `@import "@/assets/scss/main.scss";`,
            },
        },
        extract: false,
    },
};

这也将照顾SCSS变量,混合等。插件将不附带一个单独的CSS文件,所有将包括在捆绑的js文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70865549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档