admin 发布于 01月15, 2019

art-template-loader处理srcset

关于srcset,之前有文章提及过对它的处理,大概是这样的:

{
  test: /\.html$/,
  loader: 'html-srcsets-loader',
  options: {
    attrs: ['img:src', ':srcset'],
    minimize: true,
    caseSensitive: true,
    removeAttributeQuotes: false,
    minifyJS: false,
    minifyCSS: false
  },
  exclude: /^node_modules$/,
}

让我没想到的是,在打包出来后的页面中,还是有srcset没做处理的情况。分析了一把,发现原因是:

import xx from './xx.tpl'

const html = xx({a: 1, b: 2});
// 再把这个html片断插入某个DOM节点

阅读全文 »

admin 发布于 01月06, 2019

passport模块在koa中的使用

前阵子,技术群里面的哥们发了一个链接:meituan-app。今天闲来无事,研究了一下。

那个README感觉有所欠缺,需要打开mongod以及redis的服务才能跑。

在看代码的过程中,发现一个新大陆:passport。查了一下相关资料,它是一个权限认证中间件,能够把登陆认证和应用程序分离出来,从而保证了更清晰的代码结构。

阅读全文 »

admin 发布于 12月29, 2018

stylelint笔记

在github上有一个stylelint的账号:

alt

我们可以将其放到webpack中进行使用。

// webpack.config.js
const StyleLintPlugin = require("stylelint-webpack-plugin");

new StyleLintPlugin({
    context: "src",
    configFile: path.resolve(__dirname, "stylelint.config.js"),
    files: [
        '**/*.less',
        '**/*.scss'
    ],
    failOnError: false,
    quiet: true,
    // fix: true
})
// stylelint.config.js
module.exports = {
  extends: 'stylelint-config-standard',
  rules: {
    'color-no-invalid-hex': true,
    'string-quotes': 'single',
  },
};

eslint的用法其实是差不多的。

阅读全文 »

admin 发布于 12月09, 2018

Browserify + scss

感谢我的同事又帮我创造了一篇文章。因为一些原因,老项目用了Browserify来构建项目,但是碰到一个问题是:怎么把import的scss文件,转为一个css文件?

也许有人会觉得用webpack重写一下,不就好了么。。可是有没有想过,有时候重写的成本会比较大?(当然其实在我看来,应该不会大)

阅读全文 »

admin 发布于 12月06, 2018

webuploader的小坑

今天在帮同事定位一个IE8的:runtime error,利用调用栈,找到了是webuploader的问题。

翻了一下github issue,原因是本地没有装flash插件。但其实同事是装了的,于是猜测可能是flash版本的问题。

那么我们还需要在代码中处理一把,如果用户没装flash或者版本比较低,就提示让用户重新装。

阅读全文 »

admin 发布于 11月24, 2018

IE8的一些坑

这两天在处理IE8的bug,真的有点让人恼火。但其实解决之后,也会有一些心得。下面和大家分享一下碰到的两个坑:

坑一

export xx from 'xx'

这种写法在IE8下会直接TypeError('Accessors not supported!');(定位了好久,一把鼻涕一把泪)

react 项目的一个ie8兼容性问题,这篇文章中也有提到。

alt

解决办法,就是改成两句话:先import,再export

坑二

IE8下面上传图片组件webuploader,报栈溢出。

我排查了一个下午,丝毫没有头绪,很是抓狂。一个大牛同事教我使用堆栈。

话说,我也看了堆栈,但不知道去明细里面点一下,也是醉了。。orz!!

alt

看了这个错误,大概清楚了为什么栈会溢出了。原因是options里面有一个key,它的value是一个jquery对象,然后去for in,就会有很多。。。

alt

结语

上述两个坑都是一阿里P8在走之前挖的,因为之前的版本是OK的,知道要兼容IE8的,好歹测试一下兼容性吧。。

不过讲真话,是个开发就可能很不愿意打开IE8去看一下有没有问题。所以很多情况下都是前人挖坑,后人来擦屁股。

阅读全文 »