English | 简体中文
Ensure that your Node.js version is 18.0 or higher (e.g., 18.20.2). Avoid using sudo
for the installation. If you encounter permission issues with npm, refer to How to fix npm throwing error without sudo.
npm install pake-cli -g
-
CRITICAL: Consult Tauri prerequisites before proceeding.
-
For Windows users (ensure that
Win10 SDK (10.0.19041.0)
andVisual Studio build tool 2022 (>=17.2)
are installed), additional installations are required:- Microsoft Visual C++ 2015-2022 Redistributable (x64)
- Microsoft Visual C++ 2015-2022 Redistributable (x86)
- Microsoft Visual C++ 2012 Redistributable (x86) (optional)
- Microsoft Visual C++ 2013 Redistributable (x86) (optional)
- Microsoft Visual C++ 2008 Redistributable (x86) (optional)
-
For Ubuntu users, execute the following commands to install the required libraries before compiling:
sudo apt install libdbus-1-dev \ libsoup2.4-dev \ libjavascriptcoregtk-4.0-dev \ libwebkit2gtk-4.0-dev \ build-essential \ curl \ wget \ libssl-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ gnome-video-effects \ gnome-video-effects-extra
The DEFAULT_DEV_PAKE_OPTIONS
configuration in bin/defaults.ts
can be modified at development time to match the pake-cli
configuration description.
export const DEFAULT_DEV_PAKE_OPTIONS: PakeCliOptions & { url: string } = {
...DEFAULT_PAKE_OPTIONS,
url: 'https://weread.qq.com',
name: 'Weread',
};
then
yarn cli:dev
The script will read the above configuration and packages the specified app
using watch
mode, and changes to the pake-cli
code and pake
are hot updated in real time.
pake [url] [options]
The packaged application will be located in the current working directory by default. The first packaging might take some time due to environment configuration. Please be patient.
Note: Packaging requires the Rust environment. If Rust is not installed, you will be prompted for installation confirmation. In case of installation failure or timeout, you can install it manually.
The URL is the link to the web page you want to package or the path to a local HTML file. This is mandatory.
Various options are available for customization. You can pass corresponding arguments during packaging to achieve the desired configuration.
Specify the application name. If not provided, you will be prompted to enter it. It is recommended to use English.
--name <string>
Specify the application icon. Supports both local and remote files. By default, it uses the Pake brand icon. For custom icons, visit icon icons or macOSicons.
- For macOS, use
.icns
format. - For Windows, use
.ico
format. - For Linux, use
.png
format.
--icon <path>
Set the height of the application window. Default is 780px
.
--height <number>
Set the width of the application window. Default is 1200px
.
--width <number>
Enable or disable immersive header. Default is false
. Use the following command to enable this feature, macOS only.
--hide-title-bar
Determine whether the application launches in full screen. Default is false
. Use the following command to enable full
screen.
--fullscreen
Set the activation shortcut for the application. Default is
, it does not take effect, you can customize the activation shortcut with the following commands, e.g. CmdOrControl+Shift+P
, use can refer to available-modifiers.
--activation-shortcut <string>
Sets whether the window is always at the top level, defaults to false
.
--always-on-top
Force Mac to package applications using dark mode, default is false
.
--dark-mode
Sets whether to disable web shortcuts in the original Pake container, defaults to false
.
--disabled-web-shortcuts
Package the application to support both Intel and M1 chips, exclusively for macOS. Default is false
.
-
Note: After enabling this option, Rust must be installed using rustup from the official Rust website. Installation via brew is not supported.
-
For Intel chip users, install the arm64 cross-platform package to support M1 chips using the following command:
rustup target add aarch64-apple-darwin
-
For M1 chip users, install the x86 cross-platform package to support Intel chips using the following command:
rustup target add x86_64-apple-darwin
--multi-arch
Select the output package format for Linux. Options include deb
, appimage
, or all
. If all
is selected, both deb
and appimage
will be packaged. Default is all
.
--targets <format>
Customize the browser user agent. Default is empty.
--user-agent <string>
Display the system tray. Default is not to display. Use the following command to enable the system tray.
--show-system-tray
Specify the system tray icon. This is only effective when the system tray is enabled. The icon must be in .ico
or .png
format and should be an image with dimensions ranging from 32x32 to 256x256 pixels.
--system-tray-icon <path>
Set the Windows Installer language. Options include zh-CN
, ja-JP
, More at Tauri Document. Default is en-US
.
--installer-language <language>
Enable recursive copying. When the URL is a local file path, enabling this option will copy the folder containing the file specified in the URL, as well as all sub-files, to the Pake static folder. This is disabled by default.
--use-local-file
Using inject
, you can inject local absolute and relative path css
and js
files into the page you specify the url
to customize it. For example, an adblock script that can be applied to any web page, or a css
that optimizes the UI
of a page, you can write it once to customize it. would only need to write the app
once to generalize it to any other page.
--inject ./tools/style.css,./tools/hotkey.js
This secure domain is a domain other than your currently configured url
to which you may be redirected or jumped to, and only in domains that have been configured as secure can you use tauri
to expose api
to browsers to ensure that pake's built-in enhancements work correctly. Only in a domain that has been configured as secure can you use the tauri
to expose the api
to the browser, ensuring that pake's
built-in enhancements work correctly.
PS: Secure domains do not need to carry protocols.
--safe-domain weread.qq.com,google.com
The typed package has dev-tools for debugging, in addition to outputting more log messages for debugging.
--debug
After completing the above steps, your application should be successfully packaged. Please note that the packaging process may take some time depending on your system configuration and network conditions. Be patient, and once the packaging is complete, you can find the application installer in the specified directory.
# On Linux, you can run the Pake CLI via Docker
docker run -it --rm \ # Run interactively, remove container after exit
-v YOUR_DIR:/output \ # Files from container's /output will be in YOU_DIR
ghcr.io/tw93/pake \
<arguments>
# For example:
docker run -it --rm \
-v ./packages:/output \
ghcr.io/tw93/pake \
https://example.com --name myapp --icon ./icon.png