npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

babel-preset-qrn-iconfont

v0.0.4

Published

font version

Downloads

2

Readme

相关教程和问题反馈及解决方案请前往新地址, 本页面不在更新

修改字体版本

插件的作用

iOS的字体更新机制

/* 
 * @providesModule QFontSet
 */
module.exports = {
    // "fontKey": "fontUrl",
    "qrn_demo": 'https://s.qunarzz.com/dev_test/Fonts/1.0.0/qrn_demo.ttf'
};

其中 fontKey(此例中为qrn_demo) 是注册到 nativefontFalimyName, 当时用无版本的字体时, native 会检测 qrn_demo 是否已经注册, 如果注册过就不会重新写入新的字体, 如果字体库发生变化会重新生成新的字体url(也就是fontUrl), 但是 fontKey 并没有发生变化, 所以导致新的字体并没有重新注册到 native

解决方案

  1. iconfont 平台使用带有版本号的字体

  2. 使用本插件, 本插件的目的在业务无感知的情况下动态替换代码中的 fontFamilyfontKey 为带有版本号的形式(qrn_demo -> qrn_demo-0.0.1), 这样每次字体更改都会重新注册新的 fontFalimyNamenative

安装本插件

package.jsondependencies 里添加这个模块 @qnpm/babel-preset-qrn-iconfont, 然后执行 qrn install

{
  // ...
  "dependencies": {
	// ...
	"babel-preset-qrn-iconfont": "0.0.1"
  }
  // ...

配置

如果项目根目录下没有.babelrc文件则创建, 并填写如下内容

{
	"presets": ["qrn-iconfont", "qrn", "react-native"]
}

如果项目根目录下存在.babelrc文件则修改

假如.babelrc文件内容为

{
	"presets": ["这是我", "瞎编的", "也有可能有plugins"]
}

在数组最前面添加, 修改后如下

{
	"presets": ["qrn-iconfont", "qrn", "react-native", "这是我", "瞎编的", "也有可能有plugins"]
}

如果项目的.babelrcpresets中存在qrn或者react-native无需重复添加 只把 qrn-iconfont 放到前面就好

代码提交

.babelrc文件需要提交到代码仓库

回退策略

如果安装插件后出现编译问题, 卸载插件, 并把package.jsondependencies 里的 @qnpm/babel-preset-qrn-iconfont 模块删除, 并且回退对.babelrc的更改, 并且把带有版本的字体改回无版本字体

相关问题及解决方案

安装本插件后 qrn run 报错

报错信息

Loading dependency graph...(node:12857) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: `fsevents` unavailable (this watcher can only be used on Darwin)

解决办法

npm r -g watchman
brew install watchman