美文网首页还在路上
如何做一个npm package?

如何做一个npm package?

作者: Wendy曹 | 来源:发表于2018-01-21 23:34 被阅读213次

    我们前端[槑友会]最近开始轮流进行技术分享,在收集大家感兴趣的list中,"如何做一个npm package"吸引到了我,于是自己就开始查看资料,觉着其实整个过程还是蛮简单的。整理出这个笔记,给自己的分享做提纲。

    一、基础知识查漏补缺?

    1、什么是npm

    npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
    1)、允许用户从npm服务器下载别人编写的第三方包到本地使用。
    2)、允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
    3)、允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。

    2、npm和cnpm的区别

    因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事。来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”
    cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm

    二、构建npm package的流程

    1、注册账户

    想要在Npm上发布自己的软件包,就必须先在npm官网上注册一个账号
    注册地址

    注册.png

    注册完成后,我们就可以在命令行中登录刚刚注册的账号了:

    image.png

    OK登录成功。

    2、创建第一个npm模块

    Node.js模块就是发布到npm的代码包

    1)、在目标文件夹目录下用npm init来创建package.json文件

    这个过程中命令行会逐步提示你输入这个模块的信息,
    其中模块的名字版本号是必填项
    创建好的package.json是长这样的

    package.json.png
    2)、编写入口文件

    如果你使用默认值的话,那就会是index.js.
    创建完package.json文件之后,你就要开始写代码包里的内容了,这里举个最简单的例子,在默认的index.js里写一个要导出的函数,这个函数也就是别人的代码里可以import或者require的。

    exports.showMsg = function () {
      console.log("This is my first module");
    };
    

    这样的话,你的node模块就已经创建完成了

    3、发布到npm服务器上

    npm publish 发布包
    发布过程会把整个目录发布,不想发布的内容模块,可以通过 .gitignore.npmignore 文件忽略
    发布成功之后可以去npm官网搜索一下,是否已经存在

    4、npm publish 存在的问题:

    1)

    npm ERR! publish Failed PUT 403
    npm ERR! code E403
    npm ERR! You do not have permission to publish "npm_package". Are you logged in as the correct user? : npm_package
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/wendy/.npm/_logs/2018-01-15T03_36_04_111Z-debug.log
    

    可能是这个名称已经被其他开发者发布使用

    2)

    npm ERR! publish Failed PUT 403
    npm ERR! code E403
    npm ERR! you must verify your email before publishing a new package: [https://www.npmjs.com/email-edit](https://www.npmjs.com/email-edit) : hello_npm_cw
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/wendy/.npm/_logs/2018-01-15T06_55_54_871Z-debug.log
    

    注册时候没有验证邮箱, 需要去npm官网发一个验证到邮箱

    验证.png

    三、创建一个案例,引用刚刚上传的包

    刚刚我们已经成功发布出去一个名叫hello_npm_cw的package,

    这时候可以新建一个项目,引用刚刚发布的包测试一下,运行npm install hello_npm_cw,然后在这个目录下会出现一个叫node_modules的文件夹,你之前写的包就会出现在这个文件夹下面。
    然后写一个index.js,代码如下

    var test = require(‘hello_npm_cw');
    test.showMsg();
    

    运行index.js

    node index.js
    

    运行结果显示

    This is my first module
    

    那么刚刚上传的包,目前已经可以使用,到目前的话,你已经成功创建了一个npm包了

    四、如何更新你的npm package

    当你包的内容修改之后,在命令行执行

    npm version <update_type>
    

    update_type就是版本号的意思,会自动更新package.json里面的版本号
    然后重新 npm publish,更新就会完成

    在简书上发布相关文章是对自己不断学习的激励;如有什么写得不对的地方,欢迎批评指正;给我点赞的都是小可爱~_~

    相关文章

      网友评论

        本文标题:如何做一个npm package?

        本文链接:https://www.haomeiwen.com/subject/lwccaxtx.html