javascript - 从 SASS 文件中导入 npm 包(带有字体)
问题描述
我想simple-line-icons
直接作为模块导入并将前缀更改$simple-line-icon-prefix
为其他内容。
我创建了一个测试项目:
vue create foobar
cd foobar
npm install -D sass-loader sass
npm install -D simple-line-icons
然后将导入指令添加到main.js
:
import Vue from 'vue'
import App from './App.vue'
import 'simple-line-icons/scss/simple-line-icons.scss'
Vue.config.productionTip = false
new Vue({ render: h => h(App) }).$mount('#app')
那么我的组件就是这样的:
<template>
<div id="app">Hello <i class="icon-people"></i> world</div>
</template>
这项工作很好,但我想将一个变量更改为scss
文件,所以我创建了一个main.scss
$simple-line-icon-prefix: "foobar-";
@import 'simple-line-icons/scss/simple-line-icons.scss'
main.js
然后在:中相应地替换导入import './main.scss'
。
现在我遇到了字体问题:
These relative modules were not found:
* ../fonts/Simple-Line-Icons.eot?v=2.4.0 in ./node_modules/css-loader/dist/cjs.js??
ref--8-oneOf-3-1!./node_modules/postcss-loader/src??ref--8-oneOf-3-2!./node_modules/
sass-loader/dist/cjs.js??ref--8-oneOf-3-3!./src/main.scss
如何从 scss 导入 npm 包?
编辑
我能够通过以下方式更改字体路径:
$simple-line-font-path: "~simple-line-icons/fonts/";
@import '~simple-line-icons/scss/simple-line-icons.scss'
然后我没有任何错误,但是字体没有加载到浏览器中:(
解决方案
推荐阅读
- android - 单击android WebView中的链接未开始下载文件
- javascript - 如何将列表中的值存储到 ReactJS 中的对象数组中
- xslt-1.0 - 当我需要考虑两个 xml 节点的内容时,如何使用 XPath 1.0 在 XML 中找到不同的节点
- url - Yii2 要在 URL 中传递的多个变量
- python - 与在 opencv python 中创建 RGB 图像的掩码相关的问题
- laravel - 我们如何在 5.7 版本的 laravel 中安装 composer require spatie/laravel-searchable
- ios - 如何在 urlRequest 中将 urlencoded 参数添加到 httpBody
- android - 步进器的自定义按钮设计
- node.js - 在云实例上 Dockerizing 平均堆栈应用程序并在浏览器上访问它
- postgresql - 插入语句,从源表返回列