当前位置:首页 > 博客 >Node.js > 正文

npm包发布流程

时间:2019-05-17 21:59   作者:admin   点击:

项目背景:

    之前由于我公司项目需要不断构建静态页面,但是每次我们都需要去拷贝基础框架,作为一个前端工程师,这能忍么?自动化?工程化?动起来

项目目标:

    打造一款类似vue-cli的脚手架工具,自动构建初始代码,并且把常见的雪碧图、stylus编译、css压缩等功能集成

    

    话不多说,开工,构建一个包

    新建一个项目

npm init
// 一直回车就好了

新建index.js主要文件

const clone = require('git-clone')    
const program = require('commander')    
const shell = require('shelljs');    
const log = require('tracer').colorConsole()    
program    
.version('1.0.4')    
.description('静态资源工程的cli')    
program    
.command('* <tpl> <project>')    
.action(function(tpl, project) {    
log.info('目前static-cli支持各种css语言定制:stylus')    
log.info('使用例子:dgg-static-cli stylus myproject')    
if (tpl && project) {    
let pwd = shell.pwd()    
log.info(`正在拉取模板代码,下载位置:${pwd}/${project}/ ...`)    
clone(`https://github.com/FengLin2016/static-cli.git`, pwd + `/${project}`, null, function() {    
shell.rm('-rf', pwd + `/${project}/.git`)    
log.info('模板工程建立完成')    
})    
} else {    
log.error('正确命令例子:dgg-static-cli stylus myproject')    
}    
})    
program.parse(process.argv)

    这段代码其实也很简单,主要是将我放在远程的模板,通过命令拉取到本地

    

    这个模板是上一篇文章基于gulp开发的一套代码 文章点这个

    

    接下来就是发布这个包到npm

    

    说到npm,其实公司是构建了自己私有的npm仓库的。具体操作点击这里

    

    这里不说私有的npm,直接发布到公网npm

    

    1. 注册一个npm账号, 前往NPM官网进行注册

    2.客户端注册

$ npm adduser
Username: YOUR_USER_NAME
Password: YOUR_PASSWORD
Email: YOUR_EMAIL@domain.com

   命令

npm whoami // 查看当前用户信息
npm login  //登录npm
npm publish // 在当前项目目录下运行 发布包