node本地项目发生依赖包因更新而不兼容导致项目启动错误解决记录

node本地项目发生依赖包因更新而不兼容导致项目启动错误解决记录,第1张

问题描述

今日在打包原来的项目时发现打包时突然出现了错误。排查以后发现是因为相关依赖包更新导致的问题。

错误提示如下。

运行 npm info mz-modules 命令之后发现其版本也是210。

同样查看ko-sleep模块信息发现

ko-sleep模块版本为114与之前信息一致。

查看ko-sleep模块的依赖关

与cnpm略有不同,但版本仍为114

通过以上安装信息发现导致ko-sleep 模块更新的原因可能有以下几点。

1pageckagejson配置的版本没有固定导致此问题

2Npm 和 cnpm 都没有进行版本锁定导致此问题、有版本锁定配置文件package-lockjson存在时依然会有次版本号更新问题。

针对以上几种种猜测进行问题复现与修复。

通过观察发现,疑似egg-bin版本从414升级为416之后出现了这个问题,那么我们直接指定项目的egg-bin版本。为414x重新设置packagejson配置之后运行npm install安装所有模块。

安装完成之后npm list 所有依赖信息显示如下。

上图显示修改的egg-bin版本配置已经生效,此次安装的egg-bin版本为4141版本。

之后查看依赖ko-sleep 的mz-modules版本信息。

mz-modules 的版本号仍为210

查看ko-sleep信息

版本号仍为114无变化

所以修改packagejson版本配置解决此问题的方式并没有生效。Packagejson中的版本配置不是导致间接依赖升级的原因。

添加 packagelockjson 或者yarnlock 发现 锁定文件中的依赖信息为

ko-sleep 依赖配置信息如下依然显示为114版本

多次安装不会进行升级(不排除官方ko-sleep版本没有升级的影响)

版本锁定在新项目之初是非常有用的,对于已经因为版本更新出问题的项目意义不是很大。重新生成的package-lockjson之后的依赖也为最新版本。

看与项目之前一直兼容的ko-sleep包的版本,确定为103直接安装103版本

npm install ko-sleep@103 --save

之后在packagejson中修改ko-sleep版本号。

将允许修改次版本号改为只允许bug。

~103

之后运行npm install

安装完成后运行npm list查看ko-sleep版本与依赖关系。

发现ko-sleep版本为103版本,问题解决。

问题分析总结,通过查看npm 开发文档发现,平时项目使用和配置并无任何问题,问题出在ko-sleep开发者。此开发者未遵守主版本号,次版本号能更改内容的定义。只有更新主版本号时才可使用不兼容上一版本的语法以及结构。从110开始作者直接使用ts重写了整个包,并且未使用主版本号发布为20x而是直接使用次版本号发布为11x。导致此错误。

另外做项目时要及时生成文件锁定配置。

对于开发者来最好的15个NodeJS框架:KissKissjs使用Django风格的模板。通过项目你可以看到,客户端的coffeescripts脚本在刚开始时会被加载。样式使用Stylus。SailsSails很容易]创建自定义的,企业级的Nodejs应用。它被设计成你熟悉的类似RubyonRails的MVC框架,但是又可以满足现代应用的需要:可扩展的数据驱动接口,面向服务的架构。它特别擅长设计图表,时时表单,或多人游戏,你可以在任何项目中使用。TotalTotaljs是另外一旧助你创建Nodejs,Web页面/应用的好框架,同样支持MVC架构。它是一旧使用HTML,JavaScript和CSS创建的现代框架。PartialPartialjs又一个NodeJS框架,开发者使用HTML,CSS和JavaScript可以创建大型的Web站点和应用。功能和架构类似于totaljsFlatironFlatironjs同样也是一旧现代的下一代的web框架,帮助开发者创建惊艳的web应用和功能。SocketStreamSocketStream是被来设计时时响应的单页面程序,基于快速的棋模块化r特性。SocketioSocketio是基于nodejs的实时框架,支持HTML的WebSocket和跨浏览器的向后监察。DozerDozer是一款极快r支持前端应用的系统。它不是一个框架,不是一个工具包。Dozer的设计原则是为前端提供RESTfulAPI的接口支持。CokeCOKE是一个轻量级的MVC框架。它非常简单,模块化的,非常快。ExpressioExpressio是一组实时的基于nodejs的web开发框架,支持MVC构架创建Web应用。OpaOps是g个JavaScript的框架-快速的加密的Web开发。Spine现代的MVC模式,完全支持现代JavaScrip应用。MeanMEAN是一款优化后的全栈javascriptnodejs框架,将简化和加速你的web应用开发。Sleek一步就叫座创建快速的,灵活的,友好的web程序。StapesStapesjs假设你的流程和风格是未知r。krakenKraken是一个安全的可扩展的框架,可以帮助你更好组织你的架构。他们的模块都可以独立使用。DerbyWebwebjs将你的服务器端脚本变得更简单,更稳定,可读性晚好。GeddyWINTERSMITH基于nodejs的快速的极小的,多平台支持的站点生成器。

:建议使用中间件连接,操作数据库的代码更加简单。我们的后台接口就是用的中间件连接。nodejs的设计特点,使得他本身就很快,即使是读写数据库这样耗时的操作。用连接池的目的其实就是想就加快数据库的IO速度。因此如果用nodejs,使用普通连接足矣

您要问的是eggoss上传文件慢怎么解决吗?方法如下。

1、检查网络的带宽和QPS是否超出限制,检查本地网络环境,使用MTR工具测试一下Bucket域名,查看客户端和服务器之间的链路是否有丢包情况。

2、使用ossutil工具的probe命令检测下网络环境和上传速度,排查与OSS之间的网络状态;确认上传的客户端设备与OSS所属的区域是否涉及跨境传输。

 一套好的日志分析系统可以详细记录系统的运行情况,方便我们定位分析系统性能瓶颈、查找定位系统问题。上一篇说明了日志的多种业务场景以及日志记录的实现方式,那么日志记录下来,相关人员就需要对日志数据进行处理与分析,基于E(ElasticSearch)L(Logstash)K(Kibana)组合的日志分析系统可以说是目前各家公司普遍的首选方案。

  作为微服务集群,必须要考虑当微服务访问量暴增时的高并发场景,此时系统的日志数据同样是爆发式增长,我们需要通过消息队列做流量削峰处理,Logstash官方提供Redis、Kafka、RabbitMQ等输入插件。Redis虽然可以用作消息队列,但其各项功能显示不如单一实现的消息队列,所以通常情况下并不使用它的消息队列功能;Kafka的性能要优于RabbitMQ,通常在日志采集,数据采集时使用较多,所以这里我们采用Kafka实现消息队列功能。

  ELK日志分析系统中,数据传输、数据保存、数据展示、流量削峰功能都有了,还少一个组件,就是日志数据的采集,虽然log4j2可以将日志数据发送到Kafka,甚至可以将日志直接输入到Logstash,但是基于系统设计解耦的考虑,业务系统运行不会影响到日志分析系统,同时日志分析系统也不会影响到业务系统,所以,业务只需将日志记录下来,然后由日志分析系统去采集分析即可,Filebeat是ELK日志系统中常用的日志采集器,它是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。

软件下载:

  因经常遇到在内网搭建环境的问题,所以这里习惯使用下载软件包的方式进行安装,虽没有使用Yum、Docker等安装方便,但是可以对软件目录、配置信息等有更深的了解,在后续采用Yum、Docker等方式安装时,也能清楚安装了哪些东西,安装配置的文件是怎样的,即使出现问题,也可以快速的定位解决。

Elastic Stack全家桶下载主页: https://wwwelasticco/cn/downloads/

我们选择如下版本:

Kafka下载:

  安装前先准备好三台CentOS7服务器用于集群安装,这是IP地址为:1721620220、1721620221、1721620222,然后将上面下载的软件包上传至三台服务器的/usr/local目录。因服务器资源有限,这里所有的软件都安装在这三台集群服务器上,在实际生产环境中,请根据业务需求设计规划进行安装。

  在集群搭建时,如果能够编写shell安装脚本就会很方便,如果不能编写,就需要在每台服务器上执行安装命令,多数ssh客户端提供了多会话同时输入的功能,这里一些通用安装命令可以选择启用该功能。

新建/usr/local/java目录

将下载的jdk软件包jdk-8u64-linux-x64targz上传到/usr/local/java目录,然后解压

配置环境变量/etc/profile

在底部添加以下内容

使环境变量生效

备注:后续可通过此命令停止elasticsearch运行

  新建kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们自定义以下目录:

修改如下:

在data文件夹中新建myid文件,myid文件的内容为1(一句话创建:echo 1 > myid)

kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper。

1、zookeeper启动命令

后台运行启动命令:

或者

查看集群状态:

2、kafka启动命令

后台运行启动命令:

或者

3、创建topic,最新版本已经不需要使用zookeeper参数创建。

参数解释:

复制两份

--replication-factor 2

创建1个分区

--partitions 1

topic 名称

--topic test

4、查看已经存在的topic(三台设备都执行时可以看到)

5、启动生产者:

6、启动消费者:

添加参数 --from-beginning 从开始位置消费,不是从最新消息

7、测试:在生产者输入test,可以在消费者的两台服务器上看到同样的字符test,说明Kafka服务器集群已搭建成功。

Logstash没有提供集群安装方式,相互之间并没有交互,但是我们可以配置同属一个Kafka消费者组,来实现统一消息只消费一次的功能。

  Filebeat用于安装在业务软件运行服务器,收集业务产生的日志,并推送到我们配置的Kafka、Redis、RabbitMQ等消息中间件,或者直接保存到Elasticsearch,下面来讲解如何安装配置:

1、进入到/usr/local目录,执行解压命令

2、编辑配置filebeatyml

  配置文件中默认是输出到elasticsearch,这里我们改为kafka,同文件目录下的filebeatreferenceyml文件是所有配置的实例,可以直接将kafka的配置复制到filebeatyml

后台启动命令

停止命令

2、测试logstash是消费Kafka的日志主题,并将日志内容存入Elasticsearch

自动新增的两个index,规则是logstash中配置的

数据浏览页可以看到Elasticsearch中存储的日志数据内容,说明我们的配置已经生效。

Gitee: GitEgg: GitEgg 是一款开源免费的企业级微服务应用开发框架,旨在整合目前主流稳定的开源技术框架,集成常用的最佳项目解决方案,实现可直接使用的微服务快速开发框架。

GitHub: https://githubcom/wmz1930/GitEgg

技术栈

后端技术栈:eggjs + mysql + sequelize + jwt 等

前端技术栈:vue全家桶 + axios + elementUI + markdown编辑器等

前端项目地址:https://githubcom/caiheping/vue-cms

项目运行

git clone https://githubcom/caiheping/egg-cmsgit

# 如果clone 很慢,也可以拉码云的仓库

git clone https://giteecom/caiheping/egg-cmsgit

cd egg-cms

npm install

然后修改config/configdefaultjs和database/configjson(这个改不改都行)下自己的数据库用户名和密码

创建数据库egg_cms_development

在egg_cms_development数据库下导入项目根目录下egg_cms_developmentsql文件

运行项目

npm run dev

浏览器打开 http://127001:7001/indexhtml

admin登录账号:admin,密码: 123456 普通用户账号密码自己用admin去用户管理创建

演示地址:http://blogcaihptop (自己服务器只开放部分功能,想要查看全部功能,请copy代码在自己的电脑上看)

用户名: test

密码:123456

项目功能

登录 -- 完成

首页 -- 去我的博客

文章列表 -- 增删改查

文章类型 -- 增删改查

用户中心 -- 增删改查

角色管理 -- 增删改查

菜单管理 -- 增删改查

部门管理 -- 增删改查

通知公告 -- 增删改查

头像上传 -- 完成

我的博客前端界面(知道地址后无需登录就可以进入)

界面截图

传送门:前端vue3 + 后端egg项目地址:https://githubcom/caiheping/oa-api 或者 https://giteecom/caiheping/oa-api

本文介绍如何在 mac 机器上创建 Git 服务器,总体思路是:使用gitosis来简化创建过程,在用作服务器的机器上创建一个名为 git 的账户来创建 git 服务器,其他客户端通过 ssh 机制访问 git 服务器。

一,创建 git 账户

1,在用作服务器的机器上创建 git 账户。我们可以通过 System Preferences->accounts 来添加。在这里我添加一个 git 的 administrator 账户,administrator 不是必须的,在这里仅仅为了方便。

2,设置远程访问

logout 当前账户,使用 git 账户登录;在 System Preferences->Sharing 中,勾选 Remote Login。

二,下载安装 gitosis

1,Mac OSX Yosemite 默认已经为我们安装了 Git 和 Python,可以使用如下命令查看其版本信息:

yourname:~ git$git--version

git version 232 (Apple Git-55)

yourname:~ git$python--version

Python 279

2,通过命令 git clone git@githubcom:tv42/gitosisgit 来下载 gitosis

yourname:~ git$ git clone git@githubcom:tv42/gitosisgit

Cloning into gitosis

remote: Counting objects: 614, done

remote: Compressing objects: 100% (183/183), done

remote: Total 614 (delta 434), reused 594 (delta 422)

Receiving objects: 100% (614/614), 9382 KiB | 45 KiB/s, done

Resolving deltas: 100% (434/434), done

3,进入 gitosis 目录,使用命令 sudo python setuppy install 来执行 python 脚本来安装 gitosis。

yourname:~ git$ cd gitosis/yourname:gitosis git$ sudo python setuppy install

running install

running bdist_egg

running egg_info

creating gitosisegg-info

……

Using /Library/Python/26/site-packages/setuptools-06c9-py26egg

Finished processing dependencies for gitosis==02

三,制作 ssh rsa 公钥

1,回到 client 机器上,制作 ssh 公钥。在这里我的使用同一台机器上的另一个账户作为 client。如果作为 client 的机器与作为 server 的机器不是同一台,也是类型的流程:制作公钥,放置到服务的 /tmp 目录下。只不过在同一台机器上,我们可以通过开启另一个 terminal,使用 su 切换到 local 账户就可以同时操作两个账户。

yourname:~ git$ su local_accountPassword:bash-32$ cd ~

bash-32$ ssh-keygen -t rsa

Generating public/private rsa key pair

Enter file in which to save the key (/Users/local_account/ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:Your identification has been saved in /Users/local_account/ssh/id_rsa

Your public key has been saved in /Users/local_account/ssh/id_rsapub

bash-32$ cd ssh

bash-32$ ls

id_rsa        id_rsapub

bash-32$ cp id_rsapub /tmp/youramepub

在上面的命令里,首先通过 su 切换到 local 账户(只有在同一台机器上才有效),然后进入到 local 账户的 home 目录,使用 ssh-keygen -t rsa 生成 id_rsapub,最后将该文件拷贝放置到  /tmp/yournamepub,这样 git 账户就可以访问 yournamepub了,在这里改名是为了便于在 git 中辨识多个 client。

四,使用 ssh 公钥初始化 gitosis

1,不论你是以那种方式(邮件,usb等等)拷贝 yournamepub 至服务器的 /tmp/yournamepub。下面的流程都是一样,登入服务器机器的 git 账户,进入先前提到 gitosis 目录,进行如下操作初始化 gitosis,初始化完成后,会在 git 的 home 下创建 repositories 目录。

yourname:gitosis git$ sudo -H -u git gitosis-init < /tmp/yournamepub

Initialized empty Git repository in /Users/git/repositories/gitosis-admingit/

Reinitialized existing Git repository in /Users/git/repositories/gitosis-admingit/

在这里,会将该 client 当做认证受信任的账户,因此在 git 的 home 目录下会有记录,文件 authorized_keys 的内容与 yournamepub 差不多。

yourname:~ git$ cd ~yourname:~ git$ cd sshyourname:ssh git$ ls

authorized_keys

我们需要将 authorizd_keys 稍做修改,用文本编辑器打开它,删除里面的"command="gitosis-serve yourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " 这一行:

yourname:ssh git$ open -e authorized_keys

然后,我们对 post-update 赋予可写权限,以便 client 端可以提交更改。

yourname:gitosis git$ sudo chmod 755 /Users/git/repositories//gitosis-admingit/hooks/post-update

Password:

yourname:ssh git$ cd ~

yourname:~ git$ cd repositories/

yourname:repositories git$ ls

gitosis-admingit

yourname:repositories git$

在上面的命令中可以看到,gitosis 也是作为仓库的形式给出,我们可以在其他账户下 checkout,然后对 gitosis 进行配置管理等等,而无需使用服务器的 git 账户进行。

最后一步,修改 git 账户的 PATH 路径。

yourname:gitosis git$ touch ~/bashrc

yourname:gitosis git$ echo PATH=/usr/local/bin:/usr/local/git/bin:\$PATH > bashrc

yourname:gitosis git$ echo export PATH >> bashrc

yourname:gitosis git$ cat bashrc

PATH=/usr/local/bin:/usr/local/git/bin:$PATHexport PATH

至此,服务器的配置完成。

五,client 配置

1,回到 local 账户,首先在 terminal 输入如下命令修改 local 的 git 配置:

bash-32$ git config --global username "yourgitname"bash-32$ git config --global useremail "yourmail@yourcomcom"

2,测试服务器是否连接正确,将 1014211 换成你服务的名称或服务器地址即可。

yourname:~ local_account$ ssh git@1014211Last login: Mon Nov  7 13:11:38 2011 from 1014211

3,在本地 clone 服务器仓库,下面以 gitosis-admingit 为例:

bash-32$ git clone git@1014211:repositories/gitosis-admingit

Cloning into gitosis-adminremote: Counting objects: 5, doneremote: Compressing objects: 100% (5/5), doneremote: Total 5 (delta 0), reused 5 (delta 0)

Receiving objects: 100% (5/5), done

bash-32$ ls

Desktop        InstallApp    Music        Sites

Documents    Library        Pictures    gitosis-admin

Downloads    Movies        Public

bash-32$ git

在上面的输出中可以看到,我们已经成功 clone 服务器的 gitosis-admin 仓库至本地了。

4,在本地管理 gitosis-admin:

进入 gitosis-admin 目录,我们来查看一下其目录结构:gitosisconf 文件是一个配置文件,里面定义哪些用户可以访问哪些仓库,我们可以修改这个配置;`keydir` 是存放ssh 公钥的地方。

bash-32$ cd gitosis-admin/

bash-32$ ls

gitosisconf keydir

bash-32$ cd keydir/

bash-32$ ls

yournamepub

我们只需要将其他 client 产生的 ssh 公钥添加到 keydir 目录下,并在 gitosisconf 文件中配置这些用户可以访问的仓库(用户名与放置在 keydir 下sh 公钥名相同,这就是在前面我们要修改ssh 公钥名的原因),然后将改动提交至服务器,这样就可以让其他的 client 端访问服务器的代码仓库了。

5,仓库权限管理

gitosisconf文件是用来设置用户、仓库和权限的控制文件。keydir 目录则是保存所有具有访问权限用户公钥的地方— 每人一个。在 keydir 里的文件名(比如上面的 yournamepub)应该跟你的不一样 — Gitosis 会自动从使用 gitosis-init 脚本导入的公钥尾部的描述中获取该名字。

看一下 gitosisconf 文件的内容,它应该只包含与刚刚克隆的 gitosis-admin 相关的信息:

$ cat gitosisconf

[gitosis]

[group gitosis-admin]

members = scott

writable = gitosis-admin

它显示用户 yourname — 初始化 Gitosis 公钥的拥有者 — 是唯一能管理 gitosis-admin 项目的人。

现在我们来添加一个新项目。为此我们要建立一个名为 mobile 的新段落,在其中罗列手机开发团队的开发者,以及他们拥有写权限的项目。由于 yourname 是系统中的唯一用户,我们把他设为唯一用户,并允许他读写名为 iphone_project 的新项目:

[group mobile]

members = scott

writable = iphone_project

修改完之后,提交 gitosis-admin 里的改动,并推送到服务器使其生效:

$ git commit -am 'add iphone_project and mobile group'[master 8962da8] add iphone_project and mobile group

1 file changed, 4 insertions(+)

$ git push origin master

Counting objects: 5, done

Compressing objects: 100% (3/3), done

Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done

Total 3 (delta 0), reused 0 (delta 0)

To git@gitserver:gitosis-admingit

fb27aec8962da8  master -> master

6,添加新项目到仓库种

在新工程 iphone_project 里首次推送数据到服务器前,得先设定该服务器地址为远程仓库。但你不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建:

$ git remote add origin git@gitserver:iphone_projectgit

$ git push origin master

Initialized empty Git repository in /opt/git/iphone_projectgit/

Counting objects: 3, done

Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done

Total 3 (delta 0), reused 0 (delta 0)

To git@gitserver:iphone_projectgit

[new branch]      master -> master

请注意,这里不用指明完整路径(实际上,如果加上反而没用),只需要一个冒号加项目名字即可 — Gitosis 会自动帮你映射到实际位置。

要和朋友们在一个项目上协同工作,就得重新添加他们的公钥。不过这次不用在服务器上一个一个手工添加到 ~/ssh/authorized_keys 文件末端,而只需管理 keydir 目录中的公钥文件。文件的命名将决定在 gitosisconf 中对用户的标识。现在我们为 John,Josie 和 Jessica 添加公钥:

$ cp /tmp/id_rsajohnpub keydir/johnpub

$ cp /tmp/id_rsajosiepub keydir/josiepub

$ cp /tmp/id_rsajessicapub keydir/jessicapub

然后把他们都加进 mobile 团队,让他们对 iphone_project 具有读写权限:

[group mobile]

members = scott john josie jessica

writable = iphone_project

如果你提交并推送这个修改,四个用户将同时具有该项目的读写权限。

Gitosis 也具有简单的访问控制功能。如果想让 John 只有读权限,可以这样做:

[group mobile]

members = scott josie jessica

writable = iphone_project

[group mobile_ro]

members = johnreadonly = iphone_project

现在 John 可以克隆和获取更新,但 Gitosis 不会允许他向项目推送任何内容。像这样的组可以随意创建,多少不限,每个都可以包含若干不同的用户和项目。甚至还可以指定某个组为成员之一(在组名前加上 @ 前缀),自动继承该组的成员:

[group mobile_committers]

members = scott josie jessica

[group mobile]

members   = @mobile_committers

writable  = iphone_project

[group mobile_2]

members   = @mobile_committers john

writable  = another_iphone_project

如果遇到意外问题,试试看把 loglevel=DEBUG 加到 [gitosis] 的段落(译注:把日志设置为调试级别,记录更详细的运行信息。)。如果一不小心搞错了配置,失去了推送权限,也可以手工修改服务器上的 /home/git/gitosisconf 文件 — Gitosis 实际是从该文件读取信息的。它在得到推送数据时,会把新的 gitosisconf 存到该路径上。所以如果你手工编辑该文件的话,它会一直保持到下次向 gitosis-admin 推送新版本的配置内容为

使用pip或easy_install可以管理和安装python的package包,实际上它们都是从pypi服务器中搜索和下载package的。目前在pypi服务器上,有超过三万多个package,同时还允许我们将自己的代码也上传发布到服务器上。这样,世界上的所有人都能使用pip或easy_install来下载使用我们的代码了。

具体步骤如下:

首先创建项目文件和setup文件。

目录文件结构如下:

project/

simpletest/

__init__py

testpy

setuppy

假设项目文件只有一个simpletest包,里面有一个testpy文件。

创建的setuppy文件格式大致如下,其中,install_requires字段可以列出依赖的包信息,用户使用pip或easy_install安装时会自动下载依赖的包。详细的格式参考文档。

from setuptools import setup, find_packages

setup(

name = 'simpletest',

version = '001',

keywords = ('simple', 'test'),

description = 'just a simple test',

license = 'MIT License',

install_requires = ['simplejson>=11'],

author = 'yjx',

author_email = 'not@allcom',

packages = find_packages(),

platforms = 'any',

)

然后将代码打包。

打包只需要执行python

setuppy xxx命令即可,其中xxx是打包格式的选项,如下:

# 以下所有生成文件将在当前路径下 dist 目录中

python setuppy bdist_egg # 生成easy_install支持的格式

python setuppy sdist # 生成pip支持的格式,下文以此为例

发布到pypi。

发布到pypi首先需要注册一个账号,然后进行如下两步:

注册package。输入python setuppy register。

上传文件。输入python setuppy sdist upload。

安装测试

上传成功后,就可以使用pip来下载安装了。

另外,pypi还有一个测试服务器,可以在这个测试服务器上做测试,测试的时候需要给命令指定额外的"-r"或"-i"选项,如python

setuppy register -r "",python

setuppy sdist upload -r "",pip

install -i "" simpletest。

发布到测试服务器的时候,建议在linux或cygwin中发布,如果是在windows中,参考文档,需要生成pypirc文件

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » node本地项目发生依赖包因更新而不兼容导致项目启动错误解决记录

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情