,大家应该对npminstall命令非常熟悉,尤其是执行这个命令的过程中命令窗口的疯狂输出一定让人印象深刻。我发现有些同学对安装包很熟悉,但是不知道这个包从哪里来,怎么发布一个npm。基于此,我做了一个团队内部的分享,并将分享过程整理如下。希望各位想发表的朋友帮自己有包但是不知道从何下手的同学帮忙。由于发布包涉及发布、安装、更新、删除/放弃等阶段,写在一篇文章中太长了,所以决定拆解成一个系列。今天的第一篇文章先介绍一下npm相关的一些知识。1、npm(nodepackagemanager)是一个辅助前端开发的包管理工具,包括:网站:寻找包,注册用户命令行:程序员与npm交互的主要形式仓库:最大的JavaScript软件library管理对象:包(package)管理方式:添加(发布:npmpublish;安装:npmi)删除(丢弃:npmdeprecate;卸载:npmrm)更改(更新:npmup)检查(搜索:npms)npm涉及的主体主要有两个:package和module,定义如下:package:包含package.json描述文件并发布到npm仓库的文件或文件夹Node.js在node_modules文件夹中的方法可以这样理解:一个JavaScript软件在本地发布到npm仓库就是一个包,从npm仓库下载到本地就是一个模块。另外,根据上面我们可以看出包和模块的关系:模块不一定是包(比如node内置的模块),包一定是模块,包含包的模块。json文件必须是一个包。属性:1.作用域(scope,scope)一旦你注册了个人或团体账号,你将得到一个与个人或团体名称匹配的作用域,你可以将这个作用域作为包的命名空间,如@yuyy,@58。分类:unscoped:例如babelscopeduser:例如@yuyy/babelorg:@babel/parser作用:为你发布的包提供一个命名空间,防止和别人的包名冲突2.Accessibility(可访问性)属性值有:private:私有,仅作者或团队成员可见public:public,所有人可见该属性与GitHub创建仓库时设置的访问策略一致:public,所有人可见,免费;私人的,只有你能看到,并收费。以上两个属性的关系如下:需要说明的要点:个人账号(User)可以创建和管理Unscoped包;团队账号(Org)之间只能管理ScopedpackagesUnscoped始终是publicPrivatepackages始终是ScopedScopedpackage默认为Private,但是需要付费,可以通过命令行更改其属性。一定是以下几种情况之一:一个文件夹中包含package.json,并且package.json中有main字段的文件夹中包含一个index.jsJavaScript文件的文件夹以上是npm相关的一些知识。在下一篇《npm发布包教程(二):发布包》中,我们将开始演示发布npm包的实际过程。相关文章:1.《npm发布包教程(一):从npm说起》2.《npm发布包教程(二):发布包》3.《npm发布包教程(三):安装发布包》4.《npm发布包教程(四):迭代》5.《npm发布包教程(五):废弃/删除》
