位置: 编程技术 - 正文

nodejs npm package.json中文文档

编辑:rootadmin

推荐整理分享nodejs npm package.json中文文档,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

简介

本文档有所有package.json中必要的配置。它必须是真正的json,而不是js对象。

本文档中描述的很多行为都受npm-config(7)的影响。

默认值

npm会根据包内容设置一些默认值。

name

在package.json中最重要的就是name和version字段。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。改变包应该同时改变version。

name是这个东西的名字。注意:

1.不要把node或者js放在名字中。因为你写了package.json它就被假定成为了js,不过你可以用”engine”字段指定一个引擎(见后文)。2.这个名字会作为在URL的一部分、命令行的参数或者文件夹的名字。任何non-url-safe的字符都是不能用的。3.这个名字可能会作为参数被传入require(),所以它应该比较短,但也要意义清晰。4.在你爱上你的名字之前,你可能要去npm registry查看一下这个名字是否已经被使用了。 install semver)

可用的“数字”或者“范围”见semver(7).

description

放简介,字符串。方便?潘棵窃?pm search中搜索。

keywords

关键字,数组、字符串。还是方便?潘棵窃?pm search中搜索。

homepage

项目官网的url。

注意:这和“url”不一样。如果你放一个“url”字段,registry会以为是一个跳转到你发布在其他地方的地址,然后喊你滚粗。

嗯,滚粗,没开玩笑。

bugs

你项目的提交问题的url和(或)邮件地址。这对遇到问题的?潘亢苡邪镏??/p>

差不多长这样:

你可以指定一个或者指定两个。如果你只想提供一个url,那就不用对象了,字符串就行。

如果提供了url,它会被npm bugs命令使用。

license

你应该要指定一个许可证,让人知道使用的权利和限制的。

最简单的方法是,假如你用一个像BSD或者MIT这样通用的许可证,就只需要指定一个许可证的名字,像这样:如果你又更复杂的许可条件,或者想要提供给更多地细节,可以这样:在根目录中提供一个许可证文件也蛮好的。

people fields: author, contributors

author是一个人。contributors是一堆人的数组。person是一个有name字段,可选的有url、email字段的对象,像这样:或者可以把所有的东西都放到一个字符串里,npm会给你解析:email和url在两种形式中都是可选的。

也可以在你的npm用户信息中设置一个顶级的maintainers字段。

files

files是一个包含项目中的文件的数组。如果命名了一个文件夹,那也会包含文件夹中的文件。(除非被其他条件忽略了)

你也可以提供一个.npmignore文件,让即使被包含在files字段中得文件被留下。其实就像.gitignore一样。

main

main字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫foo,然后用户安装它,然后require("foo"),然后你的main模块的exports对象会被返回。

这应该是一个相对于根目录的模块ID。

对于大多数模块,它是非常有意义的,其他的都没啥。

bin

很多包都有一个或多个可执行的文件希望被放到PATH中。npm让妈妈再也不用担心了(实际上,就是这个功能让npm可执行的)。

要用这个功能,给package.json中的bin字段一个命令名到文件位置的map。初始化的时候npm会将他链接到prefix/bin(全局初始化)或者./node_modules/.bin/(本地初始化)。

比如,npm有:

所以,当你初始化npm,它会创建一个符号链接到cli.js脚本到/usr/local/bin/npm。

如果你只有一个可执行文件,并且名字和包名一样。那么你可以只用一个字符串,比如:

结果和这个一样:

man

指定一个单一的文件或者一个文件数组供man程序使用。

如果只提供一个单一的文件,那么它初始化后就是man <pkgname>的结果,而不管实际的文件名是神马,比如:

这样man foo就可以用到./man/doc.1文件了。

如果文件名不是以包名开头,那么它会被冠以前缀,下面的:会为man foo和man foo-bar创建文件。

man文件需要以数字结束,然后可选地压缩后以.gz为后缀。The number dictates which man section the file is installed into.

会为man foo和man 2 foo创建。

directories

CommonJS Packages规范说明了几种方式让你可以用directorieshash标示出包得结构。如果看一下npm's package.json,你会看到有directories标示出doc, lib, and man。

在未来,这个信息可能会被用到。

directories.lib

告诉?潘棵悄愕目馕募?性谀睦铩D壳懊挥惺裁刺乇鸬亩?餍枰?玫?ib文件夹,但确实是重要的元信息。

directories.bin

如果你指定一个“bin”目录,然后在那个文件夹中得所有文件都会被当做”bin”字段使用。

如果你已经指定了“bin”字段,那这个就无效。

directories.man

一个放满man页面的文件夹。贴心地创建一个“man”字段。A folder that is full of man pages. Sugar to generate a “man” array bywalking the folder.

nodejs npm package.json中文文档

directories.doc

将markdown文件放在这里。最后,这些会被很好地展示出来,也许,某一天。Put markdown files in here. Eventually, these will be displayed nicely,maybe, someday.

directories.example

将事例脚本放在这里。某一天,它可能会以聪明的方式展示出来。

repository

指定你的代码存放的地方。这个对希望贡献的人有帮助。如果git仓库在github上,那么npm docs命令能找到你。

这样做:URL应该是公开的(即便是只读的)能直接被未经过修改的版本控制程序处理的url。不应该是一个html的项目页面。因为它是给计算机看的。

scripts

“scripts”是一个由脚本命令组成的hash对象,他们在包不同的生命周期中被执行。key是生命周期事件,value是要运行的命令。

参见 npm-scripts(7)

config

“config” hash可以用来配置用于包脚本中的跨版本参数。在实例中,如果一个包有下面的配置:然后有一个“start”命令引用了npm_package_config_port环境变量,用户可以通过npm config set foo:port 来重写他。

参见 npm-config(7) 和 npm-scripts(7)。

dependencies

依赖是给一组包名指定版本范围的一个hash。这个版本范围是一个由一个或多个空格分隔的字符串。依赖还可以用tarball或者git URL。

请不要将测试或过渡性的依赖放在dependencieshash中。见下文的devDependencies。

详见semver(7).

1.version 必须完全和version一致2.>version 必须比version大3.>=version 同上4.<version 同上5.<=version 同上6.~version 大约一样,见semver(7)7.1.2.x 1.2.0, 1.2.1, 等,但不包括1.3.. 见下文'依赖URL'9.* 所有."" 空,同*.version1 - version2 同 >=version1 <=version2..range1 || range2 二选一。.git... 见下文'依赖Git URL'.user/repo 见下文'GitHub URLs'.比如下面都是合法的:

依赖URL

可以指定一个tarball URL,这个tarball将在包被初始化的时候下载并初始化。

依赖Git URL

Git urls 可以是下面几种形式:commit-ish是可以被git checkout的任何tag、sha或者branch。默认为master。

GitHub URLs

1.1.版后,你可以仅仅用“user/foo-project”引用GitHub urls,比如:

devDependencies

如果有人计划在他们的程序中下载并使用你的模块,那么他们可能不想或者不需要去下载并构建你使用的外部测试或者文档框架。

在这种情况下,它最好把这些附属的项目列示在devDependencies hash中。

这些东西会在根目录执行npm link或者npm install的时候初始化,并可以像其他npm配置参数一样管理。详见npm-config(7)。

对于非特定平台的构建步骤,比如编译CoffeeScript或者其他语言到Javascript,用prepublish脚本去实现并把他放在devDependency中。

比如:

prepublish脚本会在publishing前运行,这样用户就不用自己去require来编译就能使用。并且在开发模式中(比如本地运行npm install)会运行这个脚本以便更好地测试。

peerDependencies

在一些场景中,如在一个host中不必须进行require时候,你想表现你的package与一个host工具或者库的兼容关键。这一般用来引用插件。尤其是你的模块可能要暴露一个特定的接口,并由host文档来预期和指定。

比如:这能保证你的package可以只和tea的2.x版本一起初始化。npm install tea-latte可能会产生下面的依赖关系试图初始化另一个有会冲突的依赖的插件将导致一个错误。因此,确保你的插件的需求约束越弱越好,而不要去把它锁定到一个特定的版本。

假设这个host遵守semver规范,只改变这个package的主版本会打破你的插件。因此,如果你在package中用过每个1.x版本,就用”^1.0″或者”1.x”来表示。如果你依赖于功能介绍1.5.2,用”>= 1.5.2 < 2″。

bundledDependencies

一组包名,他们会在发布的时候被打包进去。

拼成"bundleDependencies"(缺d)也可以。

optionalDependencies

如果一个依赖可用,但你希望在它安装错误的时候npm也能继续初始化,那么你可以把它放在optionalDependencies hash中。这是一个包名到版本或者url的map,就像dependencies hash一样。只是它运行错误。

处理缺乏依赖也是你的程序的责任。比如像这样:optionalDependencies会覆盖dependencies中同名的项,所以通常比只放在一个地方好。

engines

你可以指定工作的node的版本:并且,像dependensies一样,如果你不指定版本或者指定“*”作为版本,那么所有版本的node都可以。

如果指定一个“engines”字段,那么npm会需要node在里面,如果“engines”被省略,npm会假定它在node上工作。

你也可以用“engines”字段来指定哪一个npm版本能更好地初始化你的程序,如:记住,除非用户设置engine-strict标记,这个字段只是建议值。

engineStrict

如果你确定你的模块一定不会运行在你指定版本之外的node或者npm上,你可以在package.json文件中设置"engineStrict":true。它会重写用户的engine-strict设置。

除非你非常非常确定,否则不要这样做。如果你的engines hash过度地限制,很可能轻易让自己陷入窘境。慎重地考虑这个选择。如果大家滥用它,它会再以后的npm版本中被删除。

os

你可以指定你的模块要运行在哪些操作系统中:你也可以用黑名单代替白名单,在名字前面加上“!”就可以了:操作系统用process.platform来探测。

虽然没有很好地理由,但它是同时支持黑名单和白名单的。

cpu

如果你的代码只能运行在特定的cpu架构下,你可以指定一个:就像os选项,你也可以黑一个架构:cpu架构用process.arch探测。

preferGlobal

如果包主要是需要全局安装的命令行程序,就设置它为true来提供一个warning给只在局部安装的人。

它不会真正的防止用户在局部安装,但如果它没有按预期工作它会帮助防止产生误会。

private

如果你设置"private": true,npm就不会发布它。

这是一个防止意外发布私有库的方式。如果你要确定给定的包是只发布在特定registry(如内部registry)的,用publishConfighash的描述来重写registry的publish-time配置参数。

publishConfig

这是一个在publish-time使用的配置集合。当你想设置tag或者registry的时候它非常有用,所以你可以确定一个给定的包没有打上“lastest”的tag或者被默认发布到全局的公开registry。

任何配置都可以被重写,但当然可能只有“tag”和“registry”与发布的意图有关。

参见npm-config(7)有可以被重写的列表。

Node.js实现在目录中查找某个字符串及所在文件 需求如下:整个目录下大概有几M,文件无数,由于时间久了,记不清那个字符串具体在哪个文件,于是。强大,亮瞎双眼的Node.js闪亮登场。windows下安

浅析Node.js查找字符串功能 需求如下:整个目录下大概有几M,文件无数,由于时间久了,记不清那个字符串具体在哪个文件,于是。强大,亮瞎双眼的Node.js闪亮登场:windows下安

node.js适合游戏后台开发吗? 网站服务器和游戏服务器是怎么样联系到一起的?1.游戏分很多种,咱们先来看看MMORPG。再怎么简单的RPG服务器都免不了处理多人交互的情形,上百人

标签: nodejs npm package.json中文文档

本文链接地址:https://www.jiuchutong.com/biancheng/374303.html 转载请保留说明!

上一篇:Node.js中使用mongoskin操作mongoDB实例(nodejs mongoose)

下一篇:Node.js实现在目录中查找某个字符串及所在文件(node javascript)

  • 物流辅助服务属于什么费用
  • 发票勾选比账上多
  • 辞退福利全部计入当期
  • 会计净额法和总额法
  • 产品未含税价格怎么算
  • 非税收入包括哪些项目行政事业性收费
  • 善意取得增值税专用发票如何处理
  • 长期股权投资如何审计
  • 合同和付款单位不一致发票应该开给谁
  • 进口增值税未抵扣怎么办
  • 个体工商户个税减免优惠政策
  • 医院企业所得税免税吗
  • 建筑业的合理避税
  • 通行费机打发票查询
  • 想做边销茶生意?增值税可以这样处理
  • 商业承兑汇票背书转让流程图
  • 商铺租金收入税是多少税率
  • 无车承运人增值税
  • 汇算清缴已退税的还可以作废吗
  • 运输费未取得运输专用发票怎么抵扣?
  • 增值税减免税备案什么时候开始
  • 电脑不支持cpu
  • 非营利组织一般纳税人会计准则
  • win10安全中心通知关闭
  • PHP:xml_parser_get_option()的用法_XML解析器函数
  • php中的函数可以分为哪几种
  • 可以关闭系统的快捷键
  • Win11 Build10.0.22000.51预览版正式推送 (附完整更新日志)
  • 租赁的车间改造的会计分录
  • 辅导期纳税人增值税专用发票数量不得超过
  • wordpress优化加快的好多个关键点
  • 什么食物含胆固醇高不能吃
  • 所得税税前扣除的费用有哪些
  • 特许权使用费属于无形资产吗
  • 加计扣除符合的条件
  • 库存现金月末怎么结转
  • 会计月报表怎么做表格
  • javatoken生成机制
  • token验证器
  • pytorch训练模型计算f1
  • python填写表格
  • 或有资产确认的前提为什么是
  • 待处理财产损溢在资产负债表中填哪里
  • 条形码费用属于哪个科目
  • 为什么盈利要利息呢
  • 企业所得税视同销售的会计处理是?
  • 交房租会计分录怎么写好
  • 坏账准备怎么做底稿
  • 珠宝行业的会计处理方式
  • 预收款收入确认
  • 挂靠别人公司税怎么交?
  • 查账征收个体户经营所得税怎么计算
  • 固定基金减少的理由
  • 酒店客人损坏物品不赔偿怎么报警
  • 信用减值损失6702
  • 不同税率的产品可以开在同一张发票上吗
  • 销售如果对待不同客户
  • 租房开的发票收的税如何做账?
  • 企业利润的构成内容
  • 其他费用包括哪些内容
  • Mysql5.7在Centos6中的安装方法
  • windows service 2008 r2
  • win8如何更改账户名
  • windows10 upnp
  • 开机启动项怎么取消设置
  • win8.1技巧
  • mac双系统怎么调整磁盘空间
  • win8系统如何关机
  • 2021年win10累积更新
  • android app架构设计
  • 深入解析windows第7版
  • perl 读文件
  • Node.js中的construct构造函数
  • 百度关键词设置
  • Python第三方库的常见安装方法有
  • 国税局下设几个部门
  • 国税地税征管体制改革方案
  • 江苏 国税
  • 自然人电子税务局怎么设置申报密码
  • 棚户区改造的房子和商品房有什么区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设