We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
公司大了,团队大了以后,自然会出各种产品,即各种项目。而我们知道,每个项目其实都有很多共同的代码可以复用。复制粘贴这种重复劳动当然每个人都很讨厌,而且还有操作失误的情况。因此,往往,比如常用函数封装、正则、组件等,都可以做成npm module发布到npm上,方便所有的项目使用。
基础的命令和操作就不介绍了,资料太多,当然还是最推荐官方的教程,教程地址戳我>>。然后,我发现掘金的一篇文章作为补充也不错,npm - 参考手册>>。
在做自己的module之前,不得不说说怎么管理module这个项目。npm本身并没有版本管理的能力,我们publish什么,npm上就是什么。因此,很显然,我们需要Git来管理我们的npm module。 团队合作的时候,如果是多人维护一个npm module,npm publish的权限建议只能是一个人,比如是创建这个module的人,我们暂且叫他Tom。其他人,包括Tom,对module的所有修改,先push到Git上,然后由Tom做code review。当Tom觉得OK、没问题了以后,合并代码,然后npm publish到npm。 总结一下,我们通过这两点来管理:
接下来,我们从0开始,一步步地实现属于我们的npm module,过程中,我们会遇到webpack的配置,读者可以不用太理解webpack部分,应该更多关注npm方面,不过如果对webpack配置有兴趣或者疑问,可以评论留言哦。OK,让我们开始吧~
这里我们选用github,首先创建项目: 然后本地clone代码。
npm init
依次输入package name,version,description,git repository等。 有两个需要注意:
@
/
@xkeshi/utils
package.json
在npm init的时候,在填entry point的时候,我们如果选择默认的话就是index.js。那就在根目录创建一个index.js吧。
首先创建一个文件夹加src,然后里面创建两个文件夹,第一个就叫mathematic,里面封装一些数学函数;第二个叫regex,里面就是一些常用的正则。目录结构为:
├── README.md ├── index.js ├── package.json └── src ├── mathematic │ ├── README.md │ └── index.js └── regex ├── README.md └── index.js
具体的math和regex代码我就不介绍了,文章最后会附上项目地址,读者可以自己查看。
我们怎么知道自己写的东西是不是有问题呢?或者,怎么才能让使用者知道他正准备用的东西能不能达到他的预期呢?所以,examples不可少。具体的代码就忽略了,可以看文章最后的项目地址。
问题又来了,其实,我们编写的util都是用es6甚至es7的语法,游览器并不能执行。所以我们不得不用babel编译,又因为js模块化的需要,因此,webapck自然加了进来。 webpack和babel的配置就不多说了。
我们的npm包有webpack配置文件,有examples,有node_modules,这些其实我们并不想要,因此,我们可以通过.npmignore来在npm publish的时候,忽略自己不想要的文件。
代码都写好,运行测试没问题以后,push到GitHub。
在这之前,你得去npm注册过,然后npm login,最后发布npm publish就哦了。
npm login
npm publish
文章中项目github地址戳这里: https://github.com/CodeLittlePrince/kuro-util 文章中项目npm地址戳这里: https://www.npmjs.com/package/kuro-util
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
公司大了,团队大了以后,自然会出各种产品,即各种项目。而我们知道,每个项目其实都有很多共同的代码可以复用。复制粘贴这种重复劳动当然每个人都很讨厌,而且还有操作失误的情况。因此,往往,比如常用函数封装、正则、组件等,都可以做成npm module发布到npm上,方便所有的项目使用。
基础
基础的命令和操作就不介绍了,资料太多,当然还是最推荐官方的教程,教程地址戳我>>。然后,我发现掘金的一篇文章作为补充也不错,npm - 参考手册>>。
管理
在做自己的module之前,不得不说说怎么管理module这个项目。npm本身并没有版本管理的能力,我们publish什么,npm上就是什么。因此,很显然,我们需要Git来管理我们的npm module。
团队合作的时候,如果是多人维护一个npm module,npm publish的权限建议只能是一个人,比如是创建这个module的人,我们暂且叫他Tom。其他人,包括Tom,对module的所有修改,先push到Git上,然后由Tom做code review。当Tom觉得OK、没问题了以后,合并代码,然后npm publish到npm。
总结一下,我们通过这两点来管理:
实现
接下来,我们从0开始,一步步地实现属于我们的npm module,过程中,我们会遇到webpack的配置,读者可以不用太理解webpack部分,应该更多关注npm方面,不过如果对webpack配置有兴趣或者疑问,可以评论留言哦。OK,让我们开始吧~
一、创建git项目
这里我们选用github,首先创建项目:
然后本地clone代码。
二、初始化npm
依次输入package name,version,description,git repository等。
有两个需要注意:
@
开头,然后跟上公司名或者团队名,再用/
分割,最后接模块名字,比如@xkeshi/utils
,然后只有加入这个私有项目的成员才有权限npm安装@xkeshi/utils
这个包。其实关于public和private,即共有和私有的区别,文章开头的“基础”部分推荐的教程里也讲的很清楚了。我们继续,按照npm一路的提示填好资料后,我们会有一份
package.json
生成,里面就是我们刚才填写的信息。三、创建入口文件
在
npm init
的时候,在填entry point的时候,我们如果选择默认的话就是index.js。那就在根目录创建一个index.js吧。四、写两个功能
首先创建一个文件夹加src,然后里面创建两个文件夹,第一个就叫mathematic,里面封装一些数学函数;第二个叫regex,里面就是一些常用的正则。目录结构为:
具体的math和regex代码我就不介绍了,文章最后会附上项目地址,读者可以自己查看。
五、创建examples
我们怎么知道自己写的东西是不是有问题呢?或者,怎么才能让使用者知道他正准备用的东西能不能达到他的预期呢?所以,examples不可少。具体的代码就忽略了,可以看文章最后的项目地址。
六、Webpack
问题又来了,其实,我们编写的util都是用es6甚至es7的语法,游览器并不能执行。所以我们不得不用babel编译,又因为js模块化的需要,因此,webapck自然加了进来。
webpack和babel的配置就不多说了。
七、加.npmignore
我们的npm包有webpack配置文件,有examples,有node_modules,这些其实我们并不想要,因此,我们可以通过.npmignore来在npm publish的时候,忽略自己不想要的文件。
八、提交代码到github
代码都写好,运行测试没问题以后,push到GitHub。
九、发布自己的npm
在这之前,你得去npm注册过,然后
npm login
,最后发布npm publish
就哦了。项目地址
文章中项目github地址戳这里:
https://github.com/CodeLittlePrince/kuro-util
文章中项目npm地址戳这里:
https://www.npmjs.com/package/kuro-util
The text was updated successfully, but these errors were encountered: