如何打包nodejs snap应用

在snap应用开发中,我们可以把一个nodejs的应用打包为snap包.它的开发其实非常简单.在今天的这篇文章中,我们来介绍如何开发一个nodejs的snap应用.


1)在desktop上开发并测试


我们可以在我们的Ubuntu Destop上开发好我们的nodejs应用.这个应用可以不是snap包形式的.我们可以使用不同的framework来开发充分并测试我们的应用.虽然IoT的设备环境和我们的PC环境不同,但是我们还是可以测试我们的大部分功能.


2)打包我们的nodejs应用成为snap包


我们首先把我们的如下的项目:


首先,我们需要把我们的js文件的开头部分添加:

#!/usr/bin/env node

这样确保它是一个可以被执行的文件.这个步骤非常重要.否则我们的应用可能不会正常运行.具体的例程代码:

#!/usr/bin/env node
// Load the http module to create an http server.
var http = require('http');

// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("Hello snapcrafter\n");
    });

// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);

// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");

每个nodejs的项目有一个package.json的文件,我们通常可以把我们npm所需要安装的包放入到这个文件中,比如:

package.json

{
  "name": "lights",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "sudo node ./bin/www"
  },
  "bin": {
    "lights": "./bin/www",
    "server": "./bin/server.js",
    "publish": "./bin/publish.js",
    "subscribe": "./bin/subscribe.js"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.13.4",
    "fs": "0.0.1-security",
    "jade": "~1.11.0",
    "morgan": "~1.7.0",
    "mosca": "^2.2.0",
    "mqtt": "^2.0.1",
    "serialport": "^4.0.3",
    "serve-favicon": "~2.3.0"
  }
}

我们可以通过上面的方法,把我们所需要的包最终打入到我们的snap包中.另外我们也可以直接在我们的snapcraft.yam中定义所需要的安装包.开发者可以根据自己的需要进行选择.

snapcraft.yaml

name: shout
version: 0.52.0
summary: A self hosted web IRC client
description: This example is not really production quality
confinement: strict

apps:
  server:
    command: bin/shout --home $SNAP_DATA
    daemon: simple
    plugs: [network, network-bind]

parts:
  shout:
    plugin: nodejs
    node-packages:
      - shout

在上面,我们也定义了一个npm所需要安装的包 shout.我们甚至可以运用node-engine来定义我们所需要的nodejs的版本:

  node:
    plugin: nodejs
    source: . 
    node-engine: 6.9.1

当然最重要的是指定我们所需要的执行文件.在上面的例程中,我们指定/bin/shout来运行我们的应用.更多关于nodejs plugin的介绍可以在我们的 官方文档中介绍.

我们的nodejs应用可以在我们的Ubuntu Desktop 16.04上打包为snap应用,并测试.如果我们想把我们nodejs应用运用到我们的arm设备上,我们可以参阅我的文章" 如何为树莓派安装Ubuntu Core并在Snap系统中进行编译".

好啦,打包一个nodejs为snap应用就是这么简单.你们会了吗?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值