bourbon sass font-face 字体位置使用 npm 编译错误
bourbon sass font-face font location compile error with npm
我正在使用 bourbon and using their font-face sass function。
请参阅下面我的 sass。
$panton: (
("Panton-Light-Italic", 'italic', 300),
("Panton-Light", 'normal', 300),
("Panton-Regular", 'normal', 400),
("Panton-Regular-Italic", 'italic', 400),
("Panton-Bold", 'normal', 600),
("Panton-Bold-Italic", 'italic', 600),
);
@each $p in $panton {
@include font-face(
"Panton",
"../fonts/panton/#{nth($p,1)}",
("woff2", "woff")
) {
font-style: #{nth($p,2)};
font-weight: #{nth($p,3)};
}
}
但我在编译时遇到问题并收到此错误。
ModuleNotFoundError: Module not found: Error: Can't resolve
'../../node_modules/bourbon/core/bourbon/fonts/panton/Panton-Bold-Italic.woff'
in '/Users/joshcranwell/Sites/werksmotorsport-v2/src/scss'
出于某种原因,它在 bourbon node_modules
文件夹中查找字体,而实际上它位于此处...
这是我的 webpack.mix.js
,它非常适合字体真棒,没有附加变量覆盖。我所有需要的字体真棒字体都按预期编译到发行版中。
mix.js('src/js/theme.js', 'dist/js')
.js('src/js/dashboard.js', 'dist/js')
.sass('src/scss/screen.scss', 'dist/css')
.sass('src/scss/dashboard.scss', 'dist/css')
.setPublicPath('dist')
.setResourceRoot('../');
但是有些在使用 bourbon font-face 时无法编译。
任何帮助都会很棒。
更新
如果我在 url 上使用 ~/../fonts/panton/#{nth($p,1)}
,它会编译但不会将字体移动到分发文件夹。
此外,控制台错误显示奇怪的位置(没有 dist 文件夹)
也许这不是您正在寻找的答案,但我怀疑这是 Bourbon 在某个地方与 Webpack 发生冲突。它可能比它的价值更难诊断——除非你在整个项目中大量使用 Bourbon?我会说它相对多余,你可以用不多的代码实现它 -
$panton: (
("Panton-Light-Italic", 'italic', 300),
("Panton-Light", 'normal', 300),
("Panton-Regular", 'normal', 400),
("Panton-Regular-Italic", 'italic', 400),
("Panton-Bold", 'normal', 600),
("Panton-Bold-Italic", 'italic', 600),
);
@each $p in $panton {
@font-face {
font-family: "Panton";
src: url("../fonts/panton/#{nth($p,1)}.woff2") format('woff2'),
url("../fonts/panton/#{nth($p,1)}.woff") format('woff'),
font-style: #{nth($p,2)};
font-weight: #{nth($p,3)};
}
}
也许试试看?
我正在使用 bourbon and using their font-face sass function。
请参阅下面我的 sass。
$panton: (
("Panton-Light-Italic", 'italic', 300),
("Panton-Light", 'normal', 300),
("Panton-Regular", 'normal', 400),
("Panton-Regular-Italic", 'italic', 400),
("Panton-Bold", 'normal', 600),
("Panton-Bold-Italic", 'italic', 600),
);
@each $p in $panton {
@include font-face(
"Panton",
"../fonts/panton/#{nth($p,1)}",
("woff2", "woff")
) {
font-style: #{nth($p,2)};
font-weight: #{nth($p,3)};
}
}
但我在编译时遇到问题并收到此错误。
ModuleNotFoundError: Module not found: Error: Can't resolve '../../node_modules/bourbon/core/bourbon/fonts/panton/Panton-Bold-Italic.woff' in '/Users/joshcranwell/Sites/werksmotorsport-v2/src/scss'
出于某种原因,它在 bourbon node_modules
文件夹中查找字体,而实际上它位于此处...
这是我的 webpack.mix.js
,它非常适合字体真棒,没有附加变量覆盖。我所有需要的字体真棒字体都按预期编译到发行版中。
mix.js('src/js/theme.js', 'dist/js')
.js('src/js/dashboard.js', 'dist/js')
.sass('src/scss/screen.scss', 'dist/css')
.sass('src/scss/dashboard.scss', 'dist/css')
.setPublicPath('dist')
.setResourceRoot('../');
但是有些在使用 bourbon font-face 时无法编译。
任何帮助都会很棒。
更新
如果我在 url 上使用 ~/../fonts/panton/#{nth($p,1)}
,它会编译但不会将字体移动到分发文件夹。
此外,控制台错误显示奇怪的位置(没有 dist 文件夹)
也许这不是您正在寻找的答案,但我怀疑这是 Bourbon 在某个地方与 Webpack 发生冲突。它可能比它的价值更难诊断——除非你在整个项目中大量使用 Bourbon?我会说它相对多余,你可以用不多的代码实现它 -
$panton: (
("Panton-Light-Italic", 'italic', 300),
("Panton-Light", 'normal', 300),
("Panton-Regular", 'normal', 400),
("Panton-Regular-Italic", 'italic', 400),
("Panton-Bold", 'normal', 600),
("Panton-Bold-Italic", 'italic', 600),
);
@each $p in $panton {
@font-face {
font-family: "Panton";
src: url("../fonts/panton/#{nth($p,1)}.woff2") format('woff2'),
url("../fonts/panton/#{nth($p,1)}.woff") format('woff'),
font-style: #{nth($p,2)};
font-weight: #{nth($p,3)};
}
}
也许试试看?