如何在 vue.config.js 中为 node_modules 添加 sass 加载器

Posted

技术标签:

【中文标题】如何在 vue.config.js 中为 node_modules 添加 sass 加载器【英文标题】:How to add sass loader for node_modules in vue.config.js 【发布时间】:2020-08-04 04:48:58 【问题描述】:

我正在尝试对节点模块使用 sass 加载程序。但无论我怎么尝试,都会出现以下错误:

SassError: 找不到要导入的样式表。

我的 vue.config.js 是这样的:

module.exports = 
    css: 
        sourceMap: true,
        loaderOptions: 
            scss: 
                prependData: `
          @import "~@/my-node-module/theme/engine.scss"; 
        `
            
        
    ,
;

【问题讨论】:

【参考方案1】:

试试这个,来自docs:

@import "~my-node-module/theme/engine.scss";

~ 告诉 Webpack 导入路径不是相对路径。

@src 目录的 Vue CLI 3+ 别名。

所以~@ 本质上与@ 相同。无论哪种方式,Webpack 都知道路径不是相对的,并检查 src 目录,并且找不到节点模块。

~ 本身会导致 Webpack 寻找别处,通常是 node_modules

项目.scss文件

如果您的src > assets > scss 目录中有.scss 资产,例如,您可以这样做:

@import '@/assets/scss/variables.scss';

或者这个:

@import '~@/assets/scss/variables.scss';

甚至这个:

@import '~/../src/assets/scss/variables.scss';

【讨论】:

以上是关于如何在 vue.config.js 中为 node_modules 添加 sass 加载器的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 vue.config.js webpack config 将 JSON 文件写入 dist 文件夹?

第二章 node-sass安装

开发环境Vue访问后端代码(前后端分离开发,端口不同下跨域访问)

vue.config.js模板

Vue-cli中 vue.config.js 的配置详解

vue常用中vue.config.js配置