1

我在运行 snap 时创建新文件时遇到问题;例子:

1) Snap 启动并检查config.json文件./config/config.json

2)如果找不到该文件(它绝不是应用程序第一次运行),它将创建它fs.writeFile('./config/config.json', 'My Data', 'utf8', (err) => {....})

3)我然后查找该文件以使用它。

我能够运行我的节点应用程序,并且在使用时一切正常node index.js

我也可以使用snap try prime/ --devmode所有作品运行。

运行时,snap try prime/我在 syslog 中收到此错误

Error: ENOENT: no such file or directory, open './config/config.json' 它在创建时出错。

对此的任何帮助都会很棒!提前致谢。

4

1 回答 1

1

我能够通过不在 NodeJS 中创建和检查配置文件并将所有这些逻辑移动到安装挂钩(https://docs.snapcraft.io/build-snaps/hooks)来解决这个问题

所以现在我的安装钩子将检查配置文件并在它不存在时创建它,然后我允许 NodeJS 稍后写入该文件,这样我仍然可以在 NodeJS 中而不是在 Bash 中发出所有 HTTP 请求。下面是我的安装钩子,别忘了让它可执行。

该文件位于snap/hooks/install

#!/bin/sh
set -e

CONFIG_FILE=$SNAP_COMMON/config.json

if [ ! -f $CONFIG_FILE ]; then
    # File Not Found, Create it
    echo '{}' > $CONFIG_FILE
fi

希望这对某人有帮助!

于 2018-07-31T14:28:58.050 回答