diff --git a/docs/tutorial/snapcraft-guide.md b/docs/tutorial/snapcraft-guide.md index 7d038fee0683..23b00f7f13b5 100644 --- a/docs/tutorial/snapcraft-guide.md +++ b/docs/tutorial/snapcraft-guide.md @@ -15,7 +15,7 @@ Snapcraft is the primary way to get your application into the Ubuntu Software Center, but the underlying [Snap Store](snapcraft-store) supports all major Linux distributions, too. -There are two ways to create a `.snap` file: +There are three ways to create a `.snap` file: 1) Using `electron-installer-snap`, which takes `electron-packager's` output 2) Using an already created `.deb` package @@ -24,7 +24,7 @@ There are two ways to create a `.snap` file: support out of the box (not further documented here, please see those frameworks for further guidance) -In both cases, you will need to have the `snapcraft` tool installed. We +In all cases, you will need to have the `snapcraft` tool installed. We recommend building on Ubuntu 16.04 (or the current LTS). ```sh @@ -33,7 +33,7 @@ snap install snapcraft --classic While it _is possible_ to install `snapcraft` on macOS using Homebrew, you are less likely to encounter issues when running `snapcraft` on an actual Linux -distribution. +distribution. As of today, it is not able ot build `snap` packages, for instance. # Using `electron-installer-snap` @@ -46,7 +46,7 @@ npm install --save-dev electron-installer-snap ## Step 1: Package Your Electron Application -Package the application using [electron-packager][electron-packager] (or a +Package the application using [electron-packager](electron-packager) (or a similar tool). Make sure to remove `node_modules` that you don't need in your final application, since any module you don't actually need will just increase your application's size. @@ -54,33 +54,27 @@ your application's size. The output should look roughly like this: ```text -├── Ghost.exe -├── LICENSE -├── content_resources_200_percent.pak -├── content_shell.pak -├── d3dcompiler_47.dll -├── ffmpeg.dll -├── icudtl.dat -├── libEGL.dll -├── libGLESv2.dll -├── locales -│   ├── am.pak -│   ├── ar.pak -│   ├── [...] -├── natives_blob.bin -├── node.dll -├── resources -│   ├── app -│   └── atom.asar -├── snapshot_blob.bin -├── squirrel.exe -└── ui_resources_200_percent.pak +. +└── dist + └── app-linux-x64 + ├── LICENSE + ├── LICENSES.chromium.html + ├── content_shell.pak + ├── app + ├── icudtl.dat + ├── libgcrypt.so.11 + ├── libnode.so + ├── locales + ├── natives_blob.bin + ├── resources + ├── snapshot_blob.bin + └── version ``` -## Step 2: Running electron-installer-snap +## Step 2: Running `electron-installer-snap` From a terminal that has `snapcraft` in its `PATH`, run `electron-installer-snap` -with the only required parameter `--out`, which is the location of your packaged +with the only required parameter `--src`, which is the location of your packaged Electron application created in the first step. ```sh @@ -88,7 +82,7 @@ npx electron-installer-snap --src=out/myappname-linux-x64 ``` If you have an existing build pipeline, you can use `electron-installer-snap` -programmatically. For more information, see the API docs. +programmatically. For more information, see the [API docs](snapcraft-syntax). ```js const snap = require('electron-installer-snap') @@ -109,13 +103,14 @@ building blocks. If you do not already have a `.deb` package, using `electron-installer-snap` might be an easier path to create snap packages. However, multiple solutions for creating Debian packages exist, including [`electron-forge`](electron-forge), -[`electron-builder`]() or [`electron-installer-debian`](electron-installer-debian). +[`electron-builder`](electron-builder) or +[`electron-installer-debian`](electron-installer-debian). ## Step 2: Create a snapcraft.yaml For more information on the available configuration options, see the [documentation on the snapcraft syntax](https://docs.snapcraft.io/build-snaps/syntax). -In this example +Let's look at an example: ```yaml name: myApp @@ -176,6 +171,7 @@ exec "$@" --executed-from="$(pwd)" --pid=$$ > /dev/null 2>&1 & [snapcraft.io]: https://snapcraft.io/ [snapcraft-store]: https://snapcraft.io/store/ [snapcraft-syntax]: https://docs.snapcraft.io/build-snaps/syntax +[electron-packager]: https://github.com/electron-userland/electron-packager [electron-forge]: https://github.com/electron-userland/electron-forge [electron-builder]: https://github.com/electron-userland/electron-builder [electron-installer-debian]: https://github.com/unindented/electron-installer-debian