道招
webpack笔记——hook执行时call的是什么
我们一般使用的插件都是Hook子类,比如SyncHook,没有复杂的重写基类Hook的compile方法 先看Hook基类 // node_module/tapable/Hook.js class Hook { constructor(args) { if (!Array.isArray(args)) args = []; this._args =
前端使用karma+mocha+babel+istanbul进行单元测试覆盖
先看看项目结构 这是一个vue项目,其中project位于当前项目的根目录下。 废话不多说,先上配置文件 karma.conf.js const webpackConfig = require('./build/webpack.test.conf'); module.exports = function karmaConfig (config) { config.set({
webpack引入UMD风格JS报错Cannot set property xxx of undefined
我们在项目(比如vue项目)中可能会引入一些umd风格的js库,比如wangEditor,这类的库一般会这么写 (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof def
vue-cli设置css不生效
我们有的项目使用的是老的vue-cli脚手架生成的,今天想写点东西,发现.vue文件里面 style 里面写的样式都不生效了,很自然就想到是不是loader的问题。 在这种项目的webpack.base.config.js一般设置loader的 rules: [ ...(config.dev.useEslint ? [createLintingRule()] : []),
前端也会需要一个消费队列
现在我们已经习惯了模块化,微服务化,这样的确带来了很多的好处,但是有时也会有些小麻烦。比如: A组件和B组件各要调用一个接口,并且根据接口调用完成后执行回调,要求A组件的回调较B组件的先执行。 如果是在同一个组件里面,我们比较容易的控制接口的调用时机(同时调用两个接口),并且通过 Promise.all 来完成这个需求。但是在两个组件里面一不好控制接口的调用时机,二不好控制回调执行顺序。 这时我
从vuecli3学习webpack记录(零)整体流程
今天看了下自己之前写的从vuecli3学习webpack记录系列,感觉自己居然没有在一开始的时候把vuecli的 npm run serve 的整体流程在一篇文章里面完整的讲完,可能是因为打字打的手疼,不想写了吧。今天特来补充一下。 这里是整体脉络,所以不会讲细节,细节在本系列里面已经讲到了。 const Service = require('../lib/Service') cons
Vue在chrome44偶现点击子元素事件无法冒泡
公司的一个项目大致是这样的:一个左侧列表,点击左侧列表的文章标题,右侧展开该文章对应的内容的。 现在的问题出现在极少部分客户有时左侧的标题,无法打开对应的右侧的内容,给人的改进就是‘卡’、点不动、点了没反应。 再大致介绍下项目环境: chrome 44(打包到用户客户端内) Vue 2.6.10 左侧列表布局 列表的每个绿色方框是一个vue组件,名叫ListItem,列表
在iframe中使用富文本编辑器wangEditor
自己做的邮件项目里面需要使用到富文本编辑器,邮件内容说白了就是HTML代码。前任使用的是wangEditor,部分定制化需求就是直接改的源码。 最近发现有的用户的邮件内容加进去的很多css信息,比如 <link rel="stylesheet" href="style.css" ,用户可能是使用的模板加进去的,或者自己是个懂点代码的,因为我们默
vue发送请求是应该在mounted还是在created生命周期
一个经常会被问到的问题: 为什么不在 created 里去发ajax? created 可是比 mounted 更早调用啊,更早调用意味着更早返回结果,那样性能不是更高? 首先,一个组件的 created 比 mounted 也早调用不了几微秒,性能没啥提高; 而且,等到异步渲染开启的时候, created 就可能被中途打断,中断之后渲染又要重做一遍,想一想,在
mysql 关闭3306端口对外开放服务
我们都知道mysql的默认端口就是3306,一般默认是对外开放的,也就是可以通过ip + 端口的访问直接远程访问,这样是有安全隐患,类似百度云观察这样的服务扫描到的话就会把这当成安全隐患提示站长。 对于只有一个服务器的用户,也就是只用使用单机版的mysql就行了。 我们怎么关闭3306端口对外开放呢? 修改/etc/my.cnf文件里面的[mysqld]的内容 最狠的办法 把 s
关注道招网公众帐号