简单学习 antd 的 build 步骤

发表于:
antdnpmgulpantd-tools

想到去学习 antd 的打包步骤是因为自己学习制作 npm 模块时遇到了疑惑。查看antd(v3.9.2)的包,我们可以在目录下找到dist/lib/es/这三个目录,而且在package.json中指定的入口是lib/"main": "lib/index.js")。然而我只会使用webpack打包出一个dist/目录,于是查看了 antd 的相关内容进行了学习。

简单的前端脚手架

发表于:
JavaScriptNode.jsCLI

从零搭建一个简单的脚手架工具,像vue-cli一样,一个命令就能变出一个完整结构的初始项目。流行的脚手架工具有很多实用的功能,这里要说的是最基本的一项:通过一个命令快速创建出初始项目。

使用promise封装setTimeout

发表于:
JavaScriptPromise

使用 Promise 对 setTimeout 进行封装,从而支持链式的调用。

const delay = (func, millisec, options) => {
  let timer = 0
  let reject = null
  const promise = new Promise((resolve, _reject) => {
    reject = _reject
    timer = setTimeout(() => {
      resolve(func(options))
    }, millisec)
  })

  return {
    get promise() {
      return promise
    },
    cancel() {
      if (timer) {
        clearTimeout(timer)
        timer = 0
        reject(new Error('timer is cancelled'))
        reject = null
      }
    },
  }
}

使用🌰:

const d = delay(({a, b}) => {
  console.log(a, b)
  return a + b
}, 2000, {a: 1, b: 3})

d.promise.then((result) => {
  console.log('result', result)
}).catch((err) => {
  console.log(err)
})

// cancel
// setTimeout(() => {
//   d.cancel()
// }, 1000)

前端错误捕获以及ajax监听

发表于:
JavaScript前端日志

上线的项目难免会有错误,通过分析日志能够有效、准确地定位、重现并解决错误,从而提升产品体验。以下是根据资料以及目前需求所实现的一个前端日志采集的方案。

JS变量提升

发表于:
JavaScript

变量提升即将变量声明提升到它所在作用域的最开始的部分,ES6 之前 JS 只有全局作用域和函数作用域,ES6 加入了块级作用域,用一对花括号{}包裹的部分。变量提升会将函数声明和部分变量声明提升到作用域顶端。例子如下:

4/6
© 2017-2025 Daief's Blog