首页 文章 精选 留言 我的

精选列表

搜索[code],共10003篇文章
优秀的个人博客,低调大师

用VS Code开发Vue应用

现在用VSCode开发Vue.js应用几乎已经是前端的标配了,但很多时候我们看到的代码混乱不堪,作为一个前端工程师,单引号双引号乱用,一段有分号一段没有分号,有的地方有逗号有的地方没有逗号,空格回车都对不齐,还说自己做事认真,这不是开玩笑的事情。 我们今天从头开始,完整地讲述一下一个重度代码洁癖患者该如何用vscode开发vue,以及如何把一个已经可以宣判死刑的全身各种格式错误几万条的项目整容成标准美女。 从安装开始 为了准确起见,我们把vscode里所有插件全部禁用,把用户设置清空,以让它尽可能恢复成原始的样子: 作为代码洁癖患者,对于系统的版本要求一定也是最苛刻的,不管什么时候,都让我们把所有的系统能升级的都升级到最高版本: npm install -g @vue/cli 然后,我们开始创建项目: vue create hello-world 在这里,一定要选择第一项:babel + eslint,这两个是必不可少的。我见到有些人嫌eslint麻烦,居然在项目建立好之后手工把eslint关掉的,简直无语。 安装完毕: 我们先不急着执行,执行代码是最容易的事情,我们先打开代码看一下: 好吧,至少我们需要先安装vetur插件。这几乎已经确定是开发vue项目的标配了,即使我不说,vscode也会强烈建议你安装它。 装上vetur以后多少有点人样了。接下来我们来试一试能不能自动格式化,这部分才是洁癖患者的最爱。胡乱加几个空格,然后保存试试看: 不能格式化,连个提示都没有! 用lint格式化 就算vscode里的vetur不能帮我们自动格式化,好在package.json命令里还有一个lint命令,我们看看lint命令能不能帮我们自动格式化: lint居然说没有错误!明明就是多了很多空格的错误好吧,为什么? 这是因为缺省的vue-cli没有为我们安装@vue/prettier插件,我们先来手工安装一下: yarn add -D @vue/eslint-config-prettier 然后在package.json或者.eslintrc.js或者其它什么你设置eslint的地方,给它加上: "extends": [ "plugin:vue/essential", "eslint:recommended", "@vue/prettier" ], 特别是最后这一个@vue/prettier,非常重要。然后再执行yarn lint。多余的空格被自动干掉了,但是我们发现有一些地方同时也被篡改了: 所有的单引号被变成双引号了,原本行尾没有的分号被加上了分号。这是为什么呢?因为我们虽然引入了prettier,但是还没有对prettier做设置,我们在项目的根目录下创建一个.prettierrc.js文件,然后在其中加入: module.exports = { semi: false, singleQuote: true } 再次执行yarn lint,现在我们看到lint已经能够起作用了。它不但能把我们多余插入的空格删掉,并且能按照规则把双引号变成单引号,把行尾多余的分号删掉。当然,关于行尾加不加分号这是一个哲学命题,你可以根据你个人的喜好自行决定。在这里,我们权且按照vue-cli的标配执行。 到这一步很关键,假设你拿到一个烂的不再烂的vue项目,里面有几千个.vue文件,几万个各种格式错误,也都能通过yarn lint这一行命令把它们全部修正过来! 在vscode里格式化 事情还没有完,我们注意到虽然yarn lint命令能在编写完代码之后帮我们格式化,但是既然我们是用vscode进行开发,我们当然希望能在vscode里直接看到对于错误的标注。 这时候我们需要在vscode里再安装一个插件eslint。 你以为安装上eslint插件就行了吗?不行的。因为eslint并不知道我们的.vue文件里面包含了js语法,所以还需要打开我们的vscode设置文件。 注意:这里一定要设置到项目的设置里,而不要只是设置到你自己个人的设置里,否则你团队的小伙伴随便一改又乱掉了。正确的方法是在你项目的文件夹下有一个.vscode文件夹,而vue最讨厌的地方是它居然会把这个文件夹放到.gitignore里,这个错误你必须要纠正过来,也就是说从.gitignore文件里把.vscode删掉。切切。 在你项目的settings.json里文件里添加以下代码: { "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", { "language": "vue", "autoFix": true } ], } 这时候所有错误都被标注出来了,注意看左侧,一定要让这个settings.json文件是绿色的,而不能是灰色的,如果是灰色的,请检查你的.gitignore文件: 因为我们在settings.json文件里设置了autoFixOnSave,所以不管多么乱的格式,只要一按Ctrl+S保存,自动就帮我们把代码格式整理好了,是不是很方便呢? 和Prettier的冲突 有些时候我们的vscode里插件装的比较多,譬如还安装了prettier插件,因为我们不只开发vue项目,可能还有其它类型的js项目特别是传统js项目,需要用到prettier进行美化,而prettier的一些功能是会和eslint相冲突的,比如说我们在全局设置了prettier的formatOnSave,这个功能就会和eslint的autoFixOnSave打架,为了避免这个矛盾,我们通常还会在本项目的settings.json文件里再多加几个选项,类似于这样: "editor.tabSize": 2, "editor.formatOnSave": false, "prettier.semi": false, "prettier.singleQuote": true 有了这些设置,基本上prettier就不会和eslint打架了。 小结 以上就是用vscode开发vue程序的标配,并不像网上有些文章说的那么简单,不是只需要配一个eslint就能解决的事情,这里还用到了vetur,eslint和prettier,把几个工具综合用好,才能真正达到我们的错误随时可见,保存自动修改,更正既往错误的目的。希望每个前端工程师写出的代码都如出一人之手,漂亮简洁干净。 我们的目标始终如一:0错误0警告。 摘要: 0错误0警告应该是每个程序员最基本的要求。 原文:用vscode开发vue应用 作者:张京 Fundebug经授权转载,版权归原作者所有。

优秀的个人博客,低调大师

Visual Studio Code安装Python环境

如何在全宇宙最强编辑器安装Python运行环境 (雾 首先安装Python2和Python3,如果只需要用到一个的话,直接安装即可运行,不存在转换问题。 安装Python扩展,直接搜索安装即可。 更改.json配置如下图 setting.json中搜索python.pythonPath,之后将pythonPath更改为python3即可。(如果没有python3,则进入安装目录下把python3文件夹下的python.exe改为python3.exe,估计就可以了。mac和linux下应该不存在这个问题,如果有的话更改成路径估计就行了。如下图) 然后就可以在界面中自由切换Python版本。如下图

优秀的个人博客,低调大师

如何在本地编译Fabric Code

之前的博客都是拿官方现成的Docker镜像来用,但是并没有自己动手做镜像,也没有说到如何去开发和测试Fabric的代码。这一篇博客就从入门的角度讲解如何编译、测试和开发Fabric。 一、环境准备 要进行相关的开发工作,当然第一步是准备好环境,还是老生常谈,主要是安装Docker、安装Go,下载最新Fabric代码等工作。我这里使用的是VirtualBox里面安装的Ubuntu 16.04,如果您使用的不是这个版本,可能有些命令会有所区别。Fabric开发依赖的工具主要还是参考官方文档:http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv.html 1. 使用VirtualBox并在其中安装好Ubuntu 这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是Ubuntu16.04.2 X64 Server。我使用的用户是studyzy,不建议直接在root下执行命令。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。具体做法是 sudo vi /etc/apt/sources.list 打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入: :%s/us./cn./g 就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。 sudo apt-get update 更新一下源。 然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。 sudo apt-get install ssh 2. Go的安装 Ubuntu的apt-get虽然提供了Go的安装,但是版本比较旧,最好的方法还是参考官方网站https://golang.org/dl/,下载最新版的Go。具体涉及到的命令包括: wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz 【注意:不要使用apt方式安装go,apt的go版本太低了!】 接下来编辑当前用户的环境变量: vi ~/.profile 添加以下内容: export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$HOME/go/bin 编辑保存并退出vi后,记得把这些环境载入: source ~/.profile 我们把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹 cd ~ mkdir go 运行以下命令查看当前go的版本,如果能够显示go版本,那么说明我们的go安装成功. go version 3. Docker安装 我们可以使用阿里提供的镜像,安装也非常方便,参考:https://yq.aliyun.com/articles/110806,其中Ubuntu的脚本是: # step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step 4: 更新并安装 Docker-CE sudo apt-get -y update sudo apt-get -y install docker-ce 安装完成后需要修改当前用户(我使用的用户叫studyzy)权限: sudo usermod -aG docker studyzy 注销并重新登录,然后添加阿里云的Docker Hub镜像: sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 不同的版本添加方法是不一样的,官方的文档如下: https://cr.console.aliyun.com/#/accelerator 当然觉得阿里云镜像不好用,喜欢用DaoClound的也可以用DaoClound的镜像。DaoCloud的镜像设置文档为:https://www.daocloud.io/mirror#accelerator-doc 4. Docker-Compose的安装 Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。 然后是安装docker-compose,我们从官方网站(https://github.com/docker/compose/releases)下载,运行脚本: sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 5.Pip的安装 Pip是基于Python的一个工具,需要安装Python-pip,运行脚本: sudo apt-get install python-pip 这个脚本会安装Pip所依赖的Python和各种库,所以安装pip完毕后我们也有了Python的环境。运行以下命令可以检查pip和Python的版本: pip –V apt安装的版本可能不够新,我们使用以下命令可以更新pip版本: pip install --upgrade pip 6. Go Tools安装 Fabric使用GO开发,其中用到了一些官方或者第三方的工具,我们也需要下载。尤其是golang的网址被墙了,我们只有访问GitHub的镜像。 mkdir –p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/tools.git 等tools下载完毕,我们可以运行以下命令来安装Fabric可能用到的Go工具: go get github.com/kardianos/govendor go get github.com/golang/lint/golint go get golang.org/x/tools/cmd/goimports go get github.com/onsi/ginkgo/ginkgo go get github.com/axw/gocov/... go get github.com/client9/misspell/cmd/misspell go get github.com/AlekSi/gocov-xml go get github.com/golang/protobuf/protoc-gen-go 7. 第三方库安装 Fabric依赖的第三方库里面,有些库又依赖了其他库,而这些库是需要我们先手动准备好的。比如libltdl-dev,这是PKCS11用到的一个库,我们需要安装: sudo apt-get install libltdl-dev 8. Fabric源码下载 我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码: mkdir -p ~/go/src/github.com/hyperledger cd ~/go/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git 等Fabric下载完毕后,我们就切换到Fabric源码的文件夹: cd ~/go/src/github.com/hyperledger/fabric 二、编译Fabric 编译Fabric的代码主要是通过make命令来完成,因为官方已经写好了完整的Makefile,所以我们要编译各个Fabric的组件还是比较简单的。关于make的基础知识,可以参考这篇博客:http://www.ruanyifeng.com/blog/2015/02/make.html 下面我们就分步骤来编译Fabric。 1.Orderer节点的编译 Orderer节点容器里面运行的是orderer服务,我们要生成Orderer镜像,就需要先编译出Orderer程序。执行: make orderer 这是我在CLI下执行的结果: studyzy@ubuntu1:~/go/src/github.com/hyperledger/fabric$ make orderer build/bin/orderer CGO_CFLAGS=" " GOBIN=/home/studyzy/go/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.6-snapshot-a8728bc -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.2 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger" github.com/hyperledger/fabric/orderer Binary available as build/bin/orderer 从日志可以看出,Orderer编译完成后,会把二进制文件放在build/bin/orderer。 2.Peer节点的编译 Peer节点的编译会比Orderer复杂很多,因为墙的原因,我们需要做一些额外的操作。另外链码是运行在Peer所在的机器上,所以需要给ChainCode准备运行基础环境,也就是ccenv和javaenv两个镜像。在make peer之前我们必须先保证本地没有对应的镜像文件,如果有,那么就用docker rmi命令删除之前下载或者编译好的镜像。 还记得前面下载的Go Tools吗,这里需要copy到Fabric目录里面来: mkdir -p build/docker/gotools/bin cp ~/go/bin/* build/docker/gotools/bin 以上操作纯粹是为了绕开墙,如果你本身不存在墙的问题,那么完全可以不用如此多此一举。 接下来直接运行以下命令即可编译生成Peer节点的Docker镜像: make peer 运行该命令后,系统首先会下载hyperledger/fabric-baseimage:x86_64-0.3.2这个镜像到本地,这是所有Fabric镜像的基础镜像文件。 下载后会从官网下载chaintool的jar包,下载地址:https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/chaintool-1.0.0/hyperledger-fabric-chaintool-1.0.0.jar 这个地址没有被墙,一般来说是能够正常下载下来的。 下载chaintool完毕后,接下来就开始创建fabric-ccenv镜像。所有创建Docker镜像都是基于Dockerfile,我们可以在Fabric目录下的images文件夹看到所有Fabric镜像Build的步骤配置。 在创建fabric-ccenv镜像后,接下来是创建java版ChainCode的基础镜像,也就是fabric-javaenv,最后才是build peer程序,运行成功后看到的日志大概是这样的: …… Successfully built b8f69c7b3c4c Successfully tagged hyperledger/fabric-javaenv:latest docker tag hyperledger/fabric-javaenv hyperledger/fabric-javaenv:x86_64-1.0.6-snapshot-a8728bc build/bin/peer CGO_CFLAGS=" " GOBIN=/home/studyzy/go/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.6-snapshot-a8728bc -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.2 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger" github.com/hyperledger/fabric/peer Binary available as build/bin/peer 3.Fabric 工具编译 Fabric除了Orderer和Peer外,还为我们提供了几个很方便的工具,在搭建Fabric网络时我们就用到过。那就是: configtxgen cryptogen configtxlator 这三个工具的编译也很简单,直接运行以下命令即可: make configtxgen make cryptogen make configtxlator 4.Docker镜像的生成 前面三步只是生成了Fabric的二进制文件,我们并不能直接使用,而是需要分别将这些二进制文件打包到Docker镜像中。所以我们接下来需要Build Docker Image。 要生成Orderer镜像,那么需要运行命令: make orderer-docker 由于没有网络文件的依赖,所以这时应该很快就能完成。然后我们继续生成Peer镜像: make peer-docker 再然后是客户端,也就是fabric-tools,对应的命令是: make tools-docker 以上3个最重要的镜像生成完成,我们可以用 docker images 查看当前的镜像列表: 5.其他Docker镜像的编译 除了上面我们看到的这些镜像外,实际上我们可能还会用到CouchDB做状态数据库,用Kafka做共识,用Zookeeper做Kafka的高可用支持,这些工具都有对应的Docker镜像,我们仍然可以使用make命令来生成他们。 运行以下命令,系统会给我们生成一整套的Fabric镜像: make docker 这里一般来说没什么坑,主要是从网上下载一些包下来,会花一些时间。完成后,我们仍然运行 docker images 可以看到我们生成的所有Fabric镜像: 三、总结 如果没有墙的存在,那么我们编译和生成Fabric镜像将非常简单,直接一个make all命令即可。可惜因为墙的存在,所以有些地方需要特殊处理。下一篇博客我会讲到如何运行Fabric中的测试代码。只要我们能够自己编译Fabric,能够跑Fabric的Test,那么我们就可以很方便的对Fabric代码进行修改,并验证我们的修改,更进一步我们就可以将自己的代码提交到社区,为Fabric的壮大添砖加瓦。 最后再补充一句,如果我们对之前生成的镜像不满意,对代码进行调整后需要重新生成,可以使用 make clean 命令删除之前make的所有东西。然后重新执行make命令编译Fabric。 本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/p/8030613.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册