The recommended way to install the required components on Windows is to install the Chocolatey package manager.
Once it’s installed, run the following commands in the PowerShell console as administrator
.
choco install nvm
choco install git
If you’re using PowerShell without privileged access, run:
nvm install 10.18.1
When installation is complete, dependencies of the src/
directory are also installed.
$ npm install
Run the following command in the PowerShell console as administrator
.
> .\scripts\Makefile.ps1 Install-Deps
If the above command fails, it might be due to not having the right policy to install. You can temporarily change the policy using:
> Set-ExecutionPolicy Bypass -Scope Process -Force;
On Windows there is no default libpng-dev
available. There are two options for getting it to build:
npm install windows-build-tools
Either option provides the dependencies required to build the package. After one of the two options are installed, install npm install libpng-dev
manually.
Build JavaScript codes with webpack
.
$ npm run build
After building is done, you can execute the application with npm start
.
Package specific files of src/
directory as distributable formats with electron-builder
.
Files are defined in electron-builder.json
.
Packages will be generated into release/
directory.
$ npm run package:<all | mac | linux>
> .\scripts\Windows.ps1
Need to install some software required by electron-builder
to build packages.
Please see electron-builder wiki for detailed description.
brew install gnu-tar
icnsutils
, graphicsmagick
and xz-utils
if Ubuntu is used.Set environment variables to build trusted packages. Please see electron-builder wiki for detailed description.
Environment Variable | Description |
---|---|
CSC_LINK |
The HTTPS link (or base64-encoded data, or file:// link) to certificate (*.p12 or *.pfx file). |
CSC_KEY_PASSWORD |
The password to decrypt the certificate given in CSC_LINK . |
CSC_NAME |
macOS-only Name of certificate (to retrieve from login.keychain). Useful on a development machine (not on CI) if you have several identities (otherwise don’t specify it). |
Execute automated tests.
$ npm test
There are two steps in npm test
.
Test functionality:
$ npm run test:app
Test coding style:
$ npm run lint:js
npm run watch
Reload the application automatically when you have saved source codes. When using this mode, you can use “React Developer Tools” in the Developer Tools window.
Mattermost Desktop
├── docs/ - Documentations.
├── resources/ - Resources which are used outside of the application codes, and original images of assets.
├── scripts/ - Helper scripts.
├── src/ - Application source code.
│ ├── assets/ - Assets which are loaded from the application codes.
│ ├── browser/ - Implementation of Electron's renderer process.
│ │ ├── components/ - React.js components.
│ │ ├── css/ - Stylesheets.
│ │ ├── js/ - Helper JavaScript modules.
│ │ └── webview/ - Injection code for Electron's <webview> tag.
│ ├── common/ - Common JavaScript modules for both Electron's processes.
│ └── main/ - Implementation of Electron's main process.
│ └── menus/ - Application menu.
└── test/ - Automated tests.
├── modules/ - Scripts which are commonly used in tests.
└── specs/ - Test scripts.
node_modules/
- Third party Node.js modules to develop and build the application.release/
- Packaged distributable applications.src/node_modules/
- Third party Node.js modules to use in the application.