lib

webpack 构建性能优化策略小结

北战南征 提交于 2019-12-01 11:59:09
背景 如今前端工程化的概念早已经深入人心,选择一款合适的编译和资源管理工具已经成为了所有前端工程中的标配,而在诸多的构建工具中, webpack 以其丰富的功能和灵活的配置而深受业内吹捧,逐步取代了grunt和gulp成为大多数前端工程实践中的首选,React,Vue,Angular等诸多知名项目也都相继选用其作为官方构建工具,极受业内追捧。但是,随者工程开发的复杂程度和代码规模不断地增加,webpack暴露出来的各种性能问题也愈发明显,极大的影响着开发过程中的体验。 问题归纳 历经了多个web项目的实战检验,我们对webapck在构建中逐步暴露出来的性能问题归纳主要有如下几个方面: 代码全量构建速度过慢,即使是很小的改动,也要等待长时间才能查看到更新与编译后的结果(引入HMR热更新后有明显改进); 随着项目业务的复杂度增加,工程模块的体积也会急剧增大,构建后的模块通常要以M为单位计算; 多个项目之间共用基础资源存在重复打包,基础库代码复用率不高; node的单进程实现在耗cpu计算型loader中表现不佳; 针对以上的问题,我们来看看怎样利用webpack现有的一些机制和第三方扩展插件来逐个击破。 慢在何处 作为工程师,我们一直鼓励要理性思考,用数据和事实说话,“我觉得很慢”,“太卡了”,“太大了”之类的表述难免显得太笼统和太抽象,那么我们不妨从如下几个方面来着手进行分析:

VC 2008 Express下安装OpenCV2.3.1

爱⌒轻易说出口 提交于 2019-12-01 10:42:53
VC 2008 Express下安装OpenCV2.3.1 注意: 下列文档以VC2008 Express为例,VC2010下的配置应与本文档类似。 VC 6.0不被OpenCV 2.3.1支持。 VC Express是微软提供的免费版,可从此处下载: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express 建议先不要自己编译,如果使用预编译好的库有问题,再尝试自己编译。 目录 [ 隐藏 ] 1 安装所需要的软件 1.1 下载OpenCV 1.2 安装CMake(不打算自己编译无需安装) 2 编译OpenCV(非必需步骤) 2.1 用CMake导出VC++项目文件 2.2 编译 OpenCV Debug和Release版本库 3 配置VC 3.1 配置include路径 3.2 配置lib路径 4 设置环境变量 5 使用OpenCV 2.3.1编程 6 作者 [ 编辑 ] 安装所需要的软件 [ 编辑 ] 下载OpenCV 从本站下载栏目 http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.3.1-win-superpack.exe 文件)。 将 OpenCV-2.3.1-win

交叉编译提示.so文件不存在问题

一世执手 提交于 2019-12-01 10:41:36
Makefile中添加: LINK = arm-none-linux-gnueabi-g++ -Wl,--allow-shlib-undefined 就可以解决下面的错误信息,主要是红色部分。 /media/hdoc/qtsdk/arm9/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libPrinter.so, needed by /media/hdoc/pda/JDApp/Lib/libPlatform.so, not found (try using -rpath or -rpath-link) /media/hdoc/qtsdk/arm9/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libcmchannel.so, needed by /media/hdoc/pda/JDApp/Lib/libPlatform.so, not found (try using -rpath or -rpath-link) /media/hdoc/qtsdk

Python中import导入上一级目录模块及循环import问题的解决

痞子三分冷 提交于 2019-12-01 10:14:28
转自:https://www.cnblogs.com/sjy18039225956/p/9265461.html 使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用;为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用。本篇就针对常见的模块调用方法汇总下。 一、同级目录下的调有 程序结构如下: -- src |-- mod1.py |-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用 import mod1 或 from mod1 import *; 二、调用子目录下的模块 程序结构如下: -- src |-- mod1.py |-- lib | |-- mod2.py |-- test1.py 这时看到test1.py和lib目录(即mod2.py的父级目录),如果想在程序test1.py中导入模块mod2.py ,可以在lib件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口),然后使用: from lib.mod2 import * 或

【手牵手】搭建前端组件库(一)

与世无争的帅哥 提交于 2019-12-01 09:58:38
本文梳理如何搭建和构建前端组件库. 了解几个问题 为何需要组件化? 大部分项目起源都是源于业务方的各种各样的 奇葩 需求。随着公司的业务发展,公司内部开始衍生出很多的B2C系统、后台系统,前端部门也疲于应对越来越多同质化的项目,这些项目在很多基础模块层、源代码存在不小的相似,甚至存在相似的业务模块。 笔者曾经所在的一个电商团队,前端成员基本每个人多做过登录注册、购物车、支付、微信登录...... 大量重复的业务代码。由于组内技术没有强制规范 本质上相同的东西,重复的去code就显得浪费. 分析这些问题发现: 日渐增多的业务场景需求 前端资源有限,无法支持所有项目的快速迭代 公司内部诸多产品业务混乱、体验不统一 于是开发底层的工具去服务不同业务就很有必要: 设计一套公司内部的基础组件库支撑各个前端项目,提升项目和业务的可用性和一致性。 一个前端团队拥有大量的业务场景和业务代码,相似的页面和代码层出不穷,如何管理和抽象这些相似的代码和模块,绝大多数团队会遇到这样的问题。 不断的拷代码? 修改代码?还是抽象成组件?显然后者更高效。所以在多项目存在高度的可控、底层依赖的情况下,前端实现组件库是最好的选择。 组件化,又或者组件抽离的目的是为了 功能 共享方便维护,其能够带来的好处是少写代码,统一管理、统一维护。一套基础组件代码千锤百炼精而又精,从而起到快速支撑业务迭代,提升开发效率的目的。

linux下部署Django uwsgi: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

牧云@^-^@ 提交于 2019-12-01 08:30:22
在ubuntu下部署Django服务,使用uwsgi时报错 命令:uwsgi --http :8001 --wsgi-file test.py 报错信息:uwsgi: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 解决方式: sudo apt-get install libpcre3 libpcre3-dev # 安装需要的包 find / -name libpcre.so.3 # 找到libpcre.so.3(一般在根目录/lib/x86_64-linux-gnu下) 找到 /lib/x86_64-linux-gnu/libpcre.so.3 sudo ln -s /lib/x86_64-linux-gnu/libpcre.so.3 /usr/lib/libpcre.so.1 # 做软链接即可 来源: https://www.cnblogs.com/erhangboke/p/11673156.html

ubuntu---记录opencv3.4.7

假如想象 提交于 2019-12-01 07:53:30
一、下载 https://github.com/opencv/opencv/archive/3.4.7.zip wget -c https://github.com/opencv/opencv/archive/3.4.7.zip wget -c https://github.com/opencv/opencv_contrib/archive/3.4.7.zip ************************************* (3.1)创建build文件夹 mkdir build cd build (3.2)cmake一下 cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.7 -D OPENCV_EXTRA_MODULES_PATH=/home/u/opencv-3.4.7/opencv_contrib-3.4.7/modules -D WITH_GTK=OFF -D WITH_GTK_2_X=OFF .. 过程可能会...非常漫长.....注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可不报错,继续。。。 ****************完事,提示如下 *****************************

解决mongodb服务启动 Permission denied:exception in ...

扶醉桌前 提交于 2019-12-01 07:51:38
解决mongodb服务启动报错:exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied is a mongod instance already running? mongodb服务启动不成功,通过查看日志文件,命令: [Shell] 纯文本查看 复制代码 ? 1 sudo gedit /var/log/mongodb/mongod .log 发现以下错误: <ignore_js_op> 大概意思是操作 /var/lib/mongodb/mongod.lock 文件权限被拒绝。 查看该文件该文件属主、属组发现不是属于mongodb,所以权限被拒绝,命令: [Shell] 纯文本查看 复制代码 ? 1 ll /var/lib/mongodb/ (该命令是查看mongodb文件夹下所有的文件信息) <ignore_js_op> 修改该文件属主、属组为mongodb即可,命令: [Shell] 纯文本查看 复制代码 ? 1 sudo chown –R mongodb:mongodb: /var/lib/mongodb/mongod .lock 如果/var/lib/mongodb/下面有多个文件属主

把.Net开发环境迁移到Linux上去

本小妞迷上赌 提交于 2019-12-01 07:51:24
.Net Core发布之前,多年来,.Net程序员的开发环境都在Windows上。 三街第一帅的我,虽然上班的8小时一直在windows上撸C#,但是下班时间一般都在搞其他的乱七八糟的东西,比如写写小游戏啊。写点安卓或者IOS的APP啊。 本着一颗折腾的心。周末在家开始了再Ubuntu上搭建.Net Core的开发环境 想要搬移到ubuntu上去,一般常规是两种方法 1.使用jetbrains家族的.Net定制开发环境Rider。 Rider是一个跨平台的.Net集成开发环境,支持windows Linux macOS,基本上可以做到开箱即用。我在windows上使用发现了不少小问题。 Rider有两个非常不 友好 的地方 第一点就是收费。 太消耗硬件资源了,这也是jb家的ide的通病。当然大部分大佬都是四核16G+几百G的固态硬盘,跑Rider还是轻松加愉快。 对于新上手一个环境来说,还算是选择一个从0配置的方案比较好。也就是今天要介绍的vscode了 2.使用vscode+dotnet sdk自己动手搭建一个环境 环境准备:ubuntu 1604+vscode最新版 + dotnet sdk 2.2 1.安装.Net core的sdk 安装.Net core的sdk需要注册微软的密钥和源 wget -q https://packages.microsoft.com/config

Django 入门

五迷三道 提交于 2019-12-01 07:09:53
ref: Django过程整理 实验楼Django基础教程 安装 sudo pip3 install Django django-admin startproject mysite cd mysite python3 manage.py runserver # 此时在浏览器输入网址http://127.0.0.1:8000/即可访问默认搭建的服务器 编写页面请求处理代码 # 创建lib目录 python3 manage.py startapp lib 在libs编写view视图代码,编辑urls.py映射到URL 向 mysite/mysite/urls.py 告知使用应用 lib 的视图。 运行服务器并在输入网址http://127.0.0.1:8000/lib/即可访问 模型 Model 模型是真实数据的简明描述。它包含了存储的数据所必要的字段和行为 settings.py配置数据库 -- class Book(models.Model) 创建模型 -- 在settings.py 的 INSTALLED_APPS 数组添加路径 python3 manage.py makemigrations lib 激活模型 -- 使用API即调用自己创建的类Book 模板 Template: 是一个文本,用于分离文档的表现形式和内容 创建一个 templates 目录 --> 新建模板文件