作为前端你不会nodejs怎么行?

如果没有业务驱动,那么最好自我驱动!

关于Nodejs这个00后来说,从12年开始火,然后点亮了整个生态圈。nodejs的个人信息,需要的去看官方文档。

这里假设的是你已经配置了nodejs环境,本文环境如下:

1
2
3
4
eyeseau:~ eyea$ node -v
v6.9.1
eyeseau:~ eyea$ npm -v
3.10.8

目的是简单的走一个制作一个npm包的简单流程,在 npm社区 这个庞大的社区里,共享你的知识成果。

1.初始化一个项目

1
2
mkdir npm && cd npm  // 新建一个npm项目然后进入
npm init // 初始化项目

紧接着开始配置,包括项目名称,版本号,项目描述,入口文件,关键词,作者等信息,配置 license 后,会让你确认信息,通过后,我们便有了 package.json 文件,用来提供项目信息和依赖信息。

注意的是:
1)npm包名要去小写;
2)版本号类似于 v1.0.0 ,后续不同程度的更新,是有区别的:
版本格式:主版号.次版号.修订号,版号递增规则如下:
主版号:当你做了不相容的 API 修改,
次版号:当你做了向下相容的功能性新增,
修订号:当你做了向下相容的问题修正。
先行版号及版本编译资讯可以加到「主版号.次版号.修订号」的后面,作为延伸。
3)入口文件需要我们把组件暴露出去的,以供用户导入(这是用户访问你的npm包的唯一入口);
es625 这个是我们本次案例,目的是为了刚接触es6语法的同学学习,在做demo过程中和es5来进行直观的代码对比,同时建议结合es6API或者 教程 ,更深入体会 es6 的强大。

2.依赖文件配置

我们依赖了es6toes5鼻祖 babel,以及 Gulp 打包工具,所以有以下依赖:

1
2
3
4
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2" ,
"babel-preset-es2015": "^6.24.0",
"babel-plugin-transform-es2015-modules-amd": "^6.24.0"

需要你在 cmd 敲打一下命令:

1
2
3
npm install gulp gulp-babel babel-preset-es2015 babel-plugin-transform-es2015-modules-amd --save
// --save-dev 是你开发时候依赖的包,--save 是你发布之后仍然依赖的包。
// 如果你爬梯子费劲,建议换成 cnpm。

这时打开你的 package.json 会多出配置项 dependencies

现在我们要开始使用gulp了,新建并配置 gulpfile.js :

1
2
touch gulpfile.js && vi gulpfile.js
// 或者就进入编辑器操作文件,都可以

具体编辑工作是这样的:

1
2
3
4
5
6
7
8
var gulp = require('gulp');
var babel= require('gulp-babel');

gulp.task('es625', function(){
return gulp.src('src/**/*.js') //ES6 file named "src"
.pipe(babel())
.pipe(gulp.dest('dist')); //result of ES6(named "dist") to ES5
});

上面的 require 仿佛看到了用户使用我们制作的npm包的情景(不过es625目前版本v1.0.3只提供转换功能,并没有export哦)

既然使用了 babel 的‘翻译’功能,那么就得有这样的一个文件:

1
2
3
4
// .babelrc
{
"presets": ["es2015"]
}

经常使用 Git 的我们一定会记得 .gitignore ,那么npm也有同样的功能的file,不过名字是 .npmignore ,看个人需求了,不过本地开发,肯定会有测试文件,依赖文件,错误日志等,我们在本地留存就好了,没必要上传到包里。

3.README.md

这个文档是很重要的,相当于发布包的说明书作用,介绍,用法,版本更新日志等,所以单独列出来。

4.发包

首先你有个 npm账号 或者 命令行形式注册:

1
2
3
npm adduser
Username:
Password:

然后发布前,确认下:

1
2
npm whoami
eyeseau

OK后,

1
npm publish

至此,我们已经完成一个包的简单制作以及发布路程,去 npm社区 看下自己包包吧。

(本文完)