目录
[1.1 fields 字段](#1.1 fields 字段)
[1.2 Author 字段](#1.2 Author 字段)
[1.3 创建 package.json 文件](#1.3 创建 package.json 文件)
[1.4 自定义 package.json 的问题](#1.4 自定义 package.json 的问题)
[1.5 从当前目录提取的默认值](#1.5 从当前目录提取的默认值)
[1.6 通过init命令设置配置选项](#1.6 通过init命令设置配置选项)
[2、创建Node.js 模块](#2、创建Node.js 模块)
[2.1 创建一个package.json 文件](#2.1 创建一个package.json 文件)
[2.2 创建在另一个应用程序需要模块时将加载的文件](#2.2 创建在另一个应用程序需要模块时将加载的文件)
[2.3 测试模块](#2.3 测试模块)
[3、关于包的 README 文件](#3、关于包的 README 文件)
[3.1 创建README.md文件并将其添加到包中](#3.1 创建README.md文件并将其添加到包中)
[3.2 更新现有包README文件](#3.2 更新现有包README文件)
[4.1 创建无作用域的公共包](#4.1 创建无作用域的公共包)
[4.2 检查包裹内容是否包含敏感或不必要的信息](#4.2 检查包裹内容是否包含敏感或不必要的信息)
[4.3 测试您的软件包](#4.3 测试您的软件包)
[4.4 发布无作用域的公共包](#4.4 发布无作用域的公共包)
1、创建package.json文件
您可以将package.json
文件添加到您的软件包中,以便于其他人管理和安装。发布到注册表的包必须包含package.json
文件。
package.json
文件:
- 列出了项目的所有依赖项
- 指定包的版本以及语义控制规则
- 使您的构建具有重复性,因此更容易与其他开发者共享
注意:为了自己的发布的包,能够更容易的在npm官网上找到,建议最好还是在package.json文件中的description字段添加对应的描述信息。
1.1 fields 字段
package.json
文件必须包含"name"
和"version"
字段。
"name"
字段包含包的名称,必须是小写字母,并且可以包含连字符和下划线。
"version"
字段必须采用x.x.x
格式,并遵循语义版本控制指南。
1.2 Author 字段
如果要在"author"
字段中包含软件包作者信息,请使用以下格式(电子邮件和网站都是可选的):
javascript
Your Name <email@example.com> (http://example.com)
示例:
javascript
{
"name": "test_a",
"version": "1.0.0",
"description": "this is test package",
"main": "read_file.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon read_file"
},
"author": "zhouxxx<724518201@qq.com>(spacebox.blog.csdn.net) ",
"license": "ISC",
"devDependencies": {
}
}
1.3 创建 package.json 文件
可以通过CLI命令交互式来创建默认的 package.json 文件。
1、我们可以先创建一个目录,然后再进入该目录
javascript
mkdir package
cd /Users/zhou/package
2、运行一下命令:
javascript
npm init
3、根据提示,输入对应字段的信息,然后回车进入下一步。
如果创建的 package.json 所有字段,都设置为默认,可以添加参数:--yes
javascript
npm init --yes
1.4 自定义 package.json 的问题
1、在主目录中,创建一个名为.npm-init.js
的文件。
2、要添加自定义问题,请使用文本编辑器,使用prompt
函数添加问题:
javascript
module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");
3、要添加自定义字段,请使用文本编辑器将所需字段添加到.npm-init.js
文件:
javascript
module.exports = {
customField: 'Example custom field',
otherCustomField: 'This example field is really cool'
}
1.5 从当前目录提取的默认值
name
: 当前目录名version
: 默认1.0.0
description
: 来自README的信息,或空字符串""
scripts
: 默认创建空test
脚本keywords
:空author
:空license
: ISCbugs
: 当前目录中的信息(如果存在)homepage
: 当前目录中的信息(如果存在)
1.6 通过init命令设置配置选项
您可以为init命令设置默认配置选项。例如,要设置默认作者电子邮件、作者姓名和许可证,请在命令行上运行以下命令:
javascript
> npm set init-author-email "example-user@example.com"
> npm set init-author-name "example_user"
> npm set init-license "MIT"
2、创建Node.js 模块
2.1 创建一个package.json 文件
1、创建一个package.json 文件,在命令行中,切换到根目录或者 Node.js 模块,运行 npm init
2、
为必填字段提供响应(name 和 version)以及main 属性
- name: 模块的名字
- version: 初始模块版本,建议遵循语义版本控制指南,从1.0.0开始
2.2 创建在另一个应用程序需要模块时将加载的文件
在文件中,添加一个函数作为exports
对象的属性。这将使该函数对其他代码可用:
javascript
exports.isarray = function(arr) {
let toString = {}.toString();
return toString.call(arr) === '[object Array]';
}
2.3 测试模块
1、发布你的包到npm
- 对于私有包和无作用域包,使用 npm publish
- 对于作用域的公共包,使用 npm publish --access pulic
2、在命令行中,在项目目录之外创建一个新的测试目录。
bash
mkdir test-directory
3、切换到新目录
bash
cd /path/to/test-directory
4、在test目录中,安装模块:
bash
npm install <your-module-name>
5、在test目录中,创建一个test.js
文件,它需要您的模块并将模块作为方法调用。
6、在命令行上,运行node test.js
。应显示发送到console.log的消息。
3、关于包的 README 文件
为了帮助其他人在npm上找到你的包,并在他们的项目中使用你的代码,我们建议在你的包目录中包含一个README文件。您的README文件可能包括安装、配置和使用软件包中代码的说明,以及用户可能发现有帮助的任何其他信息。README文件将显示在软件包页面上。
npm包的README文件必须位于包的根目录下。
3.1 创建README.md文件并将其添加到包中
1、在文本编辑器中,在包根目录中创建一个名为README.md
的文件。
2、在README.md
文件中,添加有关软件包的有用信息。
3、保存README.md
文件。
注意:.md 文件表示Markdown 文件
3.2 更新现有包README文件
README文件仅在发布新版本的软件包时在软件包页面上更新。要更新自述文件:
1、在文本编辑器中,更新README.md
文件的内容。
2、保存 README.md 文件
3、在命令行中,切换到根目录中运行如下命令:
bash
npm version patch
npm publish
4、创建和发布无作用域的公共包
作为npm用户,您可以创建未作用域的包,用于您自己的项目,并将其发布到npm公共注册表,供其他人在他们的项目中使用。无作用域的包始终是公共的,并且仅由包名引用:
bash
package-name
有关包作用域、访问和可见性的详细信息,请参阅 npm 包和模块简介
注意:在发布公共的非作用域npm包之前,您必须注册一个npm用户帐户。
4.1 创建无作用域的公共包
1、在命令行上,为您的包创建一个目录:
bash
mkdir my-test-package
2、切换到包的根目录:
bash
cd my-test-package
3、如果你使用git来管理你的包代码,在包根目录下,运行以下命令,将git-remote-url
替换为你的包的git远程URL:
bash
git init
git remote add origin git://git-remote-url
4、在软件包根目录中,运行npm init
命令。
5、根据响应提示生成 package.json 文件。
6、创建一个README文件
,解释包代码是什么以及如何使用它。
4.2 检查包裹内容是否包含敏感或不必要的信息
将敏感信息发布到注册表可能会伤害用户、损害开发基础结构、修复成本高昂,并使您面临法律的诉讼的风险。我们强烈建议在将您的包发布到注册表之前删除敏感信息,例如私钥、密码、个人身份信息
(PII)和信用卡数据。
对于不太敏感的信息,如测试数据,请使用.npmignore
或.gitignore
文件来防止发布到npm注册表。
4.3 测试您的软件包
为了减少发布bug的可能性,我们建议在将包发布到npm注册表之前对其进行测试。要测试您的包,请使用包目录的完整路径运行npm install
:
bash
npm install path/to/my-package
4.4 发布无作用域的公共包
1、在命令行中,切换到包的根目录。
bash
cd /path/to/package
2、要将公共包发布到npm注册表,请运行:
bash
npm publish
注意:如果您使用GitHub Actions发布包,则可以为您发布的每个包生成出处信息。有关详细信息
3、要查看您的公共包页面,请访问https://npmjs.com/package/\* package-name
,将package-name* 替换为您的包的名称。公共包在npm网站上的包名下面会显示public
。
4、测试
运行命令 npm install jiang-isarray
javascript
npm install jiang-isarray
新建文件 test.js ,内容如下:
javascript
var isArray = require('jiang-isarray')
console.log(isArray);
console.log(isArray([1,2,3,4,5])) // true
console.log(isArray({})) // false