kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Use NODE_ENV from environment instead of overriding it
rodzic
741b065d82
commit
24c7b3a6bf
|
@ -1,3 +1,4 @@
|
||||||
|
NODE_ENV=development
|
||||||
# BACKEND_URL="https://example.com"
|
# BACKEND_URL="https://example.com"
|
||||||
# PATRON_URL="https://patron.example.com"
|
# PATRON_URL="https://patron.example.com"
|
||||||
# PROXY_HTTPS_INSECURE=false
|
# PROXY_HTTPS_INSECURE=false
|
||||||
|
|
|
@ -32,7 +32,7 @@ jest:
|
||||||
|
|
||||||
build-development:
|
build-development:
|
||||||
stage: build
|
stage: build
|
||||||
script: yarn build:development
|
script: yarn build
|
||||||
variables:
|
variables:
|
||||||
NODE_ENV: development
|
NODE_ENV: development
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@ -41,7 +41,7 @@ build-development:
|
||||||
|
|
||||||
build-production:
|
build-production:
|
||||||
stage: build
|
stage: build
|
||||||
script: yarn build:production
|
script: yarn build
|
||||||
variables:
|
variables:
|
||||||
NODE_ENV: production
|
NODE_ENV: production
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@ -51,6 +51,8 @@ build-production:
|
||||||
i18n:
|
i18n:
|
||||||
stage: build
|
stage: build
|
||||||
script: yarn manage:translations
|
script: yarn manage:translations
|
||||||
|
variables:
|
||||||
|
NODE_ENV: production
|
||||||
before_script:
|
before_script:
|
||||||
- yarn
|
- yarn
|
||||||
- yarn build:development
|
- yarn build
|
||||||
|
|
40
README.md
40
README.md
|
@ -20,20 +20,20 @@ It incorporates much of the [Mastodon API](https://docs.joinmastodon.org/methods
|
||||||
|
|
||||||
To get it running, just clone the repo:
|
To get it running, just clone the repo:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
git clone https://gitlab.com/soapbox-pub/soapbox-fe.git
|
git clone https://gitlab.com/soapbox-pub/soapbox-fe.git
|
||||||
cd soapbox-fe
|
cd soapbox-fe
|
||||||
```
|
```
|
||||||
|
|
||||||
Ensure that Node.js and Yarn are installed, then install dependencies:
|
Ensure that Node.js and Yarn are installed, then install dependencies:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
yarn
|
yarn
|
||||||
```
|
```
|
||||||
|
|
||||||
Finally, run the dev server:
|
Finally, run the dev server:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -44,6 +44,17 @@ It will serve at `http://localhost:3036` by default.
|
||||||
It will proxy requests to the backend for you.
|
It will proxy requests to the backend for you.
|
||||||
For Pleroma running on `localhost:4000` (the default) no other changes are required, just start a local Pleroma server and it should begin working.
|
For Pleroma running on `localhost:4000` (the default) no other changes are required, just start a local Pleroma server and it should begin working.
|
||||||
|
|
||||||
|
### Troubleshooting: `ERROR: NODE_ENV must be set`
|
||||||
|
|
||||||
|
Create a `.env` file if you haven't already.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
And ensure that it contains `NODE_ENV=development`.
|
||||||
|
Try again.
|
||||||
|
|
||||||
## Developing against a live backend
|
## Developing against a live backend
|
||||||
|
|
||||||
You can also run soapbox-fe locally with a live production server as the backend.
|
You can also run soapbox-fe locally with a live production server as the backend.
|
||||||
|
@ -69,7 +80,7 @@ You will need to restart the local development server for the changes to take ef
|
||||||
|
|
||||||
Local Mastodon runs on port 3000 by default, so you will need to edit the `.env` as described above and set it like this:
|
Local Mastodon runs on port 3000 by default, so you will need to edit the `.env` as described above and set it like this:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
BACKEND_URL="http://localhost:3000"
|
BACKEND_URL="http://localhost:3000"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -91,7 +102,16 @@ Finally, refresh the page, and you should be logged in.
|
||||||
The following configuration variables are supported supported in local development.
|
The following configuration variables are supported supported in local development.
|
||||||
Edit `.env` to set them.
|
Edit `.env` to set them.
|
||||||
|
|
||||||
All configuration is optional.
|
All configuration is optional, except `NODE_ENV`.
|
||||||
|
|
||||||
|
#### `NODE_ENV`
|
||||||
|
|
||||||
|
The Node environment.
|
||||||
|
soapbox-fe checks for the following options:
|
||||||
|
|
||||||
|
- `development` - What you should use while developing soapbox-fe.
|
||||||
|
- `production` - Use when compiling to deploy to a live server.
|
||||||
|
- `test` - Use when running automated tests.
|
||||||
|
|
||||||
#### `BACKEND_URL`
|
#### `BACKEND_URL`
|
||||||
|
|
||||||
|
@ -121,6 +141,12 @@ This is needed if `BACKEND_URL` or `PATRON_URL` are set to an `https://` value.
|
||||||
# Yarn Commands
|
# Yarn Commands
|
||||||
|
|
||||||
The following commands are supported.
|
The following commands are supported.
|
||||||
|
You must set `NODE_ENV` to use these commands.
|
||||||
|
To do so, you can add the following line to your `.env` file:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
NODE_ENV=development
|
||||||
|
```
|
||||||
|
|
||||||
#### Local dev server
|
#### Local dev server
|
||||||
- `yarn start` - Run the local dev server. It will proxy requests to the backend for you.
|
- `yarn start` - Run the local dev server. It will proxy requests to the backend for you.
|
||||||
|
@ -128,9 +154,7 @@ The following commands are supported.
|
||||||
- `yarn dev` - Exact same as above, aliased to `yarn start` for convenience.
|
- `yarn dev` - Exact same as above, aliased to `yarn start` for convenience.
|
||||||
|
|
||||||
#### Building
|
#### Building
|
||||||
- `yarn build:development` - Build for development.
|
- `yarn build` - Compile without a dev server, into `/public` directory.
|
||||||
|
|
||||||
- `yarn build:production` - Build for production.
|
|
||||||
|
|
||||||
#### Translations
|
#### Translations
|
||||||
- `yarn manage:translations` - Normalizes translation files. Should always be run after editing i18n strings.
|
- `yarn manage:translations` - Normalizes translation files. Should always be run after editing i18n strings.
|
||||||
|
|
|
@ -2,16 +2,15 @@
|
||||||
"name": "soapbox-fe",
|
"name": "soapbox-fe",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "NODE_ENV=development npx webpack-dev-server --config webpack/development.js",
|
"start": "npx webpack-dev-server --config webpack",
|
||||||
"dev": "${npm_execpath} run start",
|
"dev": "${npm_execpath} run start",
|
||||||
"build:development": "NODE_ENV=development npx webpack --config webpack/development.js",
|
"build": "npx webpack --config webpack",
|
||||||
"build:production": "NODE_ENV=production npx webpack --config webpack/production.js",
|
|
||||||
"manage:translations": "node ./webpack/translationRunner.js",
|
"manage:translations": "node ./webpack/translationRunner.js",
|
||||||
"test": "${npm_execpath} run test:lint && ${npm_execpath} run test:jest",
|
"test": "${npm_execpath} run test:lint && ${npm_execpath} run test:jest",
|
||||||
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
|
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
|
||||||
"test:lint:js": "npx eslint --ext=js . --cache",
|
"test:lint:js": "npx eslint --ext=js . --cache",
|
||||||
"test:lint:sass": "npx sass-lint -v",
|
"test:lint:sass": "npx sass-lint -v",
|
||||||
"test:jest": "NODE_ENV=test npx jest --coverage"
|
"test:jest": "npx jest --coverage"
|
||||||
},
|
},
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
||||||
require('dotenv').config();
|
console.log('Running in development mode'); // eslint-disable-line no-console
|
||||||
|
|
||||||
const { resolve } = require('path');
|
const { resolve } = require('path');
|
||||||
const merge = require('webpack-merge');
|
const merge = require('webpack-merge');
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
require('dotenv').config();
|
||||||
|
|
||||||
|
const { NODE_ENV } = process.env;
|
||||||
|
|
||||||
|
switch(NODE_ENV) {
|
||||||
|
case 'development':
|
||||||
|
case 'production':
|
||||||
|
case 'test':
|
||||||
|
module.exports = require(`./${NODE_ENV}`); break;
|
||||||
|
default:
|
||||||
|
console.error('ERROR: NODE_ENV must be set to either `development`, `test`, or `production`.');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
||||||
|
console.log('Running in production mode'); // eslint-disable-line no-console
|
||||||
|
|
||||||
const { URL } = require('url');
|
const { URL } = require('url');
|
||||||
const merge = require('webpack-merge');
|
const merge = require('webpack-merge');
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
||||||
|
console.log('Running in test mode'); // eslint-disable-line no-console
|
||||||
|
|
||||||
const merge = require('webpack-merge');
|
const merge = require('webpack-merge');
|
||||||
const sharedConfig = require('./shared.js');
|
const sharedConfig = require('./shared.js');
|
||||||
|
|
Ładowanie…
Reference in New Issue