【发布时间】:2018-04-15 10:22:24
【问题描述】:
我使用 Vue 2 和 webpack 模板创建了一个项目。与此同时,我还在开发一个“组件库”,我在上面的项目中本地使用(使用npm link)。
我在两个项目中都使用 Stylus。
现在在App.vue,为了能够自定义库的外观,我从链接包中导入单独的手写笔文件,如下所示:
<template>
<...>
</template>
<script>
...
</script>
<style lang="stylus">
@import "~snue/src/stylus/vars"
/*
Override default variables
*/
fontSans = "Ubuntu"
fontMono = "Ubuntu Mono"
fontNumber = "Dosis"
lighter = lighten(light, 5)
lightish = darken(light, 5)
darker = darken(dark, 5)
darkish = lighten(dark, 5)
primary = crimson
secondary = darkcyan
// Import components and style
@import "~snue/src/stylus/components"
@import "~snue/src/stylus/styles"
// Custom styles
@import url("https://fonts.googleapis.com/css?family=Dosis:400,700");
.f-number
font-family: fontNumber, Courier New, Courier, monospace
body
html
margin: 0
padding: 0
html
background-color: darkish
body
background-color: dark
color: light
</style>
一切正常,除了 @import url(...) 使用 google 字体的规则似乎不起作用。
当我运行 npm run dev 时,浏览器使用我指定的后备字体,我看不到在 chrome 检查器的网络面板中发出的任何请求。
当我使用 webpack 和 extract 插件构建库时,我可以清楚地看到生成的 css 文件中的@import url() 规则。
这与某些 Vue 设置有关吗?
【问题讨论】:
-
尝试使用
@require而不是@import -
@DigitalDrifter
@require不能与url(...)一起使用,它会抛出错误“您不能 @require url” -
由于您在 SFC 中执行此操作,您可能需要适当的加载程序来处理它
标签: javascript webpack vue.js vuejs2 stylus