webpack - Webpack 无法解析包中的相对导入
问题描述
我完全被难住了。我已经构建了一个 sass 包,并试图通过 npm 在另一个 repo 中使用它。当我导入 sass 包时,一开始我遇到了失败,因为 webpack 无法解析导入包中的 node_module 引用。像:
//my-sass-package/index.scss
@import '@fortawesome/fontawesome-pro/scss/variables';
我添加includePaths
到我的 sass-loader 并解决了原始问题,但现在 fontawesome 包中字体文件的相对路径无法解决。
所以消费链是:
my-consuming-repo < my-styles-package < fontawesome
失败发生在这里:
//fontawesome variables.scss
'../webfonts/*.woff
这是我的 webpack 配置。非常感谢任何帮助!
module.exports = async ({ config }) => {
config.module.rules = [...config.module.rules, {
test: /\.scss$/,
use: [
{ loader: 'style-loader' },
{ loader: 'css-loader' },
{
loader: 'sass-loader',
options: {
sassOptions: {
includePaths: ['./node_modules']
}
}
}
]
},
{
test: /\.woff2(\?v=[0-9]\.[0-9]\.[0-9])?$/i,
loader: 'url-loader',
options: {
mimetype: 'application/font-woff2'
}
},
{
test: /\.woff(\?v=[0-9]\.[0-9]\.[0-9])?$/i,
loader: 'url-loader',
options: {
mimetype: 'application/font-woff'
}
},
// load these fonts normally, as files:
{
test: /\.(ttf|eot|svg|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/i,
loader: 'file-loader'
}]
config.resolve = {
modules: ['node_modules']
}
return config;
}
确切的错误
Module not found: Error: Can't resolve '../webfonts/fa-solid-900.woff2' in 'my-styles-package\sass'
解决方案
我缺少与 .scss 文件一起使用的 resolve-url-loader 插件,该插件似乎将 sass 引用连接到字体文件,因此有关.woff2
类型文件丢失的错误。
推荐阅读
- r-markdown - 上一页中的大图形品牌和白线(bookdown/Rmarkdown)
- c# - 在检索或执行多个查询之前确认文档存在
- ruby-on-rails-4 - Rails 在哪里存储或实现全局变量($)?
- java - 用于在 StyledText 字段中突出显示单词的下一个和上一个按钮的功能
- shopify - Shopify 液体对象规则
- python - “GetPassWarning:无法控制终端上的回声”是什么意思?“设备的 ioctl 不合适”?
- python - 通过 python 脚本安装软件包后如何更新 pip 的已安装发行版列表?
- ios - 基于调试级别的 Swift NSLog 启用
- ios - 以错误的顺序从 Firestore 存储下载 URL
- javascript - 问:我如何附加附件带有src地址的iframe?