1

最近在学习ubuntu core。所以我做了一个简单的 snap 使用 snap 在控制台中打印消息。真的很简单,打印一条消息,或者input-param + message。

我的问题是,我不知道为什么 snap 在开发模式下工作,但不能在候选频道中工作。

这是我的示例代码。

snapcraft.yaml

name: saybye
version: "1.0.0"
summary: Command-line tool for saying byebye to someone
description: |
  saybye
  saybye name
grade: stable
confinement: strict

apps:
  saybye:
    command: saybye

parts:
  saybye:
    plugin: nodejs
    source: .

saybye.js

#! /usr/bin/env node

let name = null;
if (process && process.argv && Array.isArray(process.argv) && process.argv.length > 2) {
  name = process.argv[2];
}

let message = null;
let greeting = "Bye Bye!";

if (!name)
  message = greeting;
else
  message = name + ' ' + greeting;

console.log(message);

它是 npm config package.json

{
  "name": "saybye",
  "version": "1.0.0",
  "description": "",
  "main": "saybye.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "bin": {
    "saybye": "saybye.js"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/hubertwang/saybye/issues"
  },
  "homepage": "https://github.com/hubertwang/saybye#readme"
}

如您所见,这里的代码非常简单。基本上它们来自一些第一次教程。如果您在开发模式下安装 snap,它可以工作。

但是,如果您安装我上传到商店的候选人,它将无法正常工作。

sudo snap install saybye --channel=candidate

我不确定问题是否是由某些界面设置引起的,也许我没有要求我需要打印消息的权限?

4

0 回答 0