日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么开发一个npm包

發布時間:2024/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么开发一个npm包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、注冊npm賬號
* 怎么將代碼提到github,大家都知道需要一個github賬號
* 同樣,開發一個npm包,當然也需要一個npm賬號,將npm包發布到npm的托管服務器
* 注冊地址:[http://npmjs.org](http://npmjs.org)
* 該實例包含了模塊的局部調用和全局調用兩種方式

二、開發npm包

1.目錄構建
* npm init
* 項目結構:
```javascript
.
├── bin //命令配置
├── README.md //說明文檔
├── index.js //主入口
├── src //功能文件
├── package.json //包信息
└── test //測試用例
```
<!--more-->
2.開發模塊
* 入口index.js模塊
非全局安裝(npm install xxx),則多有的函數接口都通過index.js暴露給外部調用
```javascript
/**
* Hello World
* @function hello
**/
const hello = function(key){
console.log('Hello World!');
};

exports.hello = hello;
```
* init.js模塊
```javascript
const exec = require('child_process').exec;

exports.run = function(name) {
//初始化一個空文件夾
exec('mkdir ' + name,function() {
console.log('king init命令已執行...');
});
};

```

* start.js模塊
```javascript
const express = require('express');
const app = express();

exports.run = function(options) {
const port = options.port || 3000;
app.listen(port);
console.log('服務已啟動,正在監聽' + port + '端口...');
};

```

3.配置全局命令
bin目錄下寫配置代碼
* cli.js自定義命令,主要通過引入commander模塊去處理,包括命令描述、參數及執行動作
* king.js文件名稱應與全局命令king保持一致,做命令的入口,具體看demo

三、發布npm包
1.npm login
```bash
npm login
```
2.npm publish
```bash
npm publish
```
四、全局安裝和局部安裝
1.局部安裝
* 所有的函數功能接口都由index.js暴露給外部
* src里面可以放功能代碼,src --> index.js只做output,暴露給外部調用
2.全局安裝
* 包全局安裝的情況,一般是做自動化工具,關鍵在于配置全局命令,與index.js無關
* 通過bin目錄下與全局命令相同的js文件(如king.js)處理command的輸入【如:king start】

五、常見問題
1. npm publish出錯
```javascript
npm ERR! publish Failed PUT 403
npm ERR! Darwin 16.0.0
npm ERR! argv "/usr/local/Cellar/node/5.6.0/bin/node" "/usr/local/bin/npm" "publish"
npm ERR! node v5.6.0
npm ERR! npm v3.10.3
npm ERR! code E403

npm ERR! "You cannot publish over the previously published version 0.0.43." : npm-develop
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR! /Volumes/work/private/github/npm-develop/npm-debug.log
```
沒有更新package.json的版本號,每次的版本號必須大于上次,否則無法publish

2. 采用sudo npm publish
password應該輸入的是本機開機密碼,非npm賬號密碼

3. 全局命令無效
package.json中的bin命令配置,屬性值應該和腳本名稱一致
```javascript
"bin": {
"king": "./bin/king.js"
}
```
六、使用本例

* github:?https://github.com/geneking/npm-develop
* download后修改項目名稱根據第'三'步可發布,全局安裝后可在本機測試,或局部安裝后可調用hello函數測試

轉載于:https://www.cnblogs.com/jinweigang/p/5954425.html

總結

以上是生活随笔為你收集整理的怎么开发一个npm包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。