开发 Node包

实现一款 markdown 在线预览工具

开发发布包

mkdir mdviewer

cd mdviewer

npm init 
#输入包名,版本号,已经其他信息,使用默认直接按回车

touch index.js

编辑 index.js,加入

console.log('Hello world~ This is my first nodejs package') ;
module.exports = 'jirengu'

继续执行

npm login
# 输入 www.npmjs.com 网站的登录用户名
# 输入 www.npmjs.com 网站的登录密码
# 输入 www.npmjs.com 网站的邮箱

如果登录失败,确认用户名密码是否正常,确认 npm 的 register 是否是 npm 官方地址

继续执行

npm publish

现在,就可以在 www.npmjs.com 上看到自己发布的包了 别人可以通过 npm install mdviewer下载你的包, 可在代码里 requrie('mdviewer')使用你的包

测试发布的包

cd test
mkdir test.js
npm install mdviewer

test.js

var str = requrie('mdviewer')
console.log(str)

开发命令行工具

修改 package.json,加入 bin 字段。修改版本号

{
  "name": ...,
  "version": "1.0.1",
  "main": ...,
  "bin": {
    "mdviewer": "./index.js"
  }
}

重新执行

npm publish

测试命令行工具

npm install -g mdviewer

mdviewer

一款天气应用

mdviewer
  |-- package.json
  |-- index.js

package.json

{
  "name": "mdviewer",
  "version": "1.0.3",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "bin": {
    "mdviewer": "./index.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.17.0"
  }
}

index.js

#!/usr/bin/env node

var axios = require('axios')

var url = process.argv[2]?'http://api.jirengu.com/weather.php?city='+encodeURI(process.argv[2]):'http://api.jirengu.com/weather.php'
axios.get(url)
  .then(function (response) {
    var data = response.data
    if(data.error != 0) {
      console.log('当前城市不支持')
      return
    }
    console.log('当前城市:' + data.results[0].currentCity)
    console.log('PM2.5   :' + data.results[0].pm25)
    console.log('天气概况:')
    console.log(' * '+data.results[0].weather_data[0].date)
    console.log(' * '+data.results[0].weather_data[0].temperature)
    console.log(' * '+data.results[0].weather_data[0].wind)
    console.log(' * '+data.results[0].weather_data[0].weather)

  })
  .catch(function (error) {
    console.log(error);
  });

results matching ""

    No results matching ""