使用gulp-iconfont时,字体不是更改而是git修改的
Font is not change but modified git when using gulp-iconfont
字体不变
git status
被修饰。
当字体改为git recognized
资产路径
$ tree app/assets/
app/assets/
├── fonts
│ ├── app
│ │ └── assets
│ │ └── scss
│ │ └── utility
│ │ └── _iconfonts.scss
│ ├── iconfonts.eot
│ ├── iconfonts.svg
│ ├── iconfonts.ttf
│ ├── iconfonts.woff
│ └── iconfonts.woff2
├── iconfonts
│ ├── a.svg
│ ├── b.svg
└── scss
├── _iconfontsTemplate.scss
└── utility
gulpfile.js
const gulp = require('gulp');
const svgmin = require('gulp-svgmin');
const iconfontCss = require('gulp-iconfont-css');
const iconfont = require('gulp-iconfont');
const src = './app/assets';
gulp.task('iconfonts', ['create-iconfonts'], () => {
gulp.src(`${src}/fonts/*`)
.pipe(gulp.dest('./dist'));
});
gulp.task('create-iconfonts', (callback) => {
gulp.src(`${src}/iconfonts/*.svg`)
.pipe(svgmin())
.pipe(iconfontCss({
fontName: 'iconfonts',
path: `${src}/scss/_iconfontsTemplate.scss`,
targetPath: `${src}/scss/utility/_iconfonts.scss`,
fontPath: `${src}/fonts`
}))
.pipe(iconfont({
fontName: 'iconfonts',
formats: ['ttf', 'eot', 'woff', 'woff2', 'svg'],
appendCodepoints: false
}))
.pipe(gulp.dest(`${src}/fonts`))
.on('end', () => { callback() });
});
git当前状态
$ git status
On branch test/hoge
nothing to commit, working directory clean
到目前为止,一切顺利。
字体不变
但是,下面的命令被修改为git
$ ./node_modules/.bin/gulp create-iconfonts
$ git status
On branch test/hoge
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: app/assets/fonts/iconfonts.eot
modified: app/assets/fonts/iconfonts.ttf
modified: app/assets/fonts/iconfonts.woff
modified: app/assets/fonts/iconfonts.woff2
no changes added to commit (use "git add" and/or "git commit -a")
你有什么好主意吗?谢谢。
我在这里遇到了同样的问题。原因是timestamp
的性质。Git会假设文件因此而被修改。
我将时间戳设置为一个常数,如1661981543
(Math.round(Date.now()/1000)
的结果),git只会假设文件被修改,如果字体真的改变了。
iconfont({
timestamp: 1661981543, // same timestamp always so git doesn't assume the file was modified
})
如果您在构建之前有一些清理字体的任务,您应该考虑删除它。
相关文章:
- 在Safari执行javascript之前对其进行修改
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 用Javascript修改内部标记的CSS规则
- 绑定Range输入以修改样式
- 可以从Chrome扩展修改窗口对象吗
- jQuery滚动器插件修改
- 将函数从onclick修改为onload
- jQuery UI自动完成-修改问题
- Javascript日期修改
- 如何通过JQuery修改样式属性
- 使用treewalker修改表
- Angularjs:修改js中的作用域,稍后在页面中使用
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 修改控制器AngularJS的全局值
- 修改数据后,setState不会触发重新渲染
- 通过sdk/system/events在修改请求观测器上测试http
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 在多个元素上使用jquery插件,只需稍作修改
- 为什么我从浏览器修改html/js时会多次发送ajax请求
- 使用gulp-iconfont时,字体不是更改而是git修改的