Skip to content

Commit ef03be7

Browse files
committed
Migrate build stack to Vite
1 parent 57c6012 commit ef03be7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1068
-7289
lines changed

Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ EXPOSE 8080
2828
HEALTHCHECK --interval=1m --timeout=20s --retries=3 \
2929
CMD wget --no-verbose --tries=1 --spider http://localhost:${LISTEN_PORT:-8080}/${BASE_URL}/healthcheck || exit 1
3030

31+
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
32+
ENTRYPOINT "/docker-entrypoint.sh"
33+
3134
CMD [ "node", "index.js" ]
3235

3336
COPY ./server/ /app
@@ -45,5 +48,5 @@ LABEL org.label-schema.build-date="${build_date}"
4548
ENV APP_ENV=production
4649
ENV APP_VERSION=${build_version}
4750
ENV APP_BUILD_ID=${build_id}
48-
ENV VUE_APP_I18N_LOCALE=en
49-
ENV VUE_APP_I18N_FALLBACK_LOCALE=en
51+
ENV VITE_I18N_LOCALE=en
52+
ENV VITE_I18N_FALLBACK_LOCALE=en

README.md

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ lists** of course, and any other small todo-list that needs to be used
1414
<p align="center"><img src="doc/osl-usage.gif" height="400" /></p>
1515

1616
The current implementation provides the following features:
17-
- **Multiple boards** (can be disabled, see `VUE_APP_SINGLEBOARD_MODE`)
17+
- **Multiple boards** (can be disabled, see `VITE_SINGLEBOARD_MODE`)
1818
- Each board with **multiple lists**
1919
- **Real-time sync** between users
2020
- Items with the following fields: name, quantity, details
@@ -40,7 +40,7 @@ people use the lists from a board collaboratively.
4040

4141
But, you might want to disable that feature and keep using a unique board for
4242
your whole instance. In that case, just use the provided
43-
`VUE_APP_SINGLEBOARD_MODE` environment variable.
43+
`VITE_SINGLEBOARD_MODE` environment variable.
4444

4545
**But have no fear, you can always:**
4646

@@ -67,7 +67,7 @@ the steps below:
6767
6868
### If you want to keep using one single board on your instance (just like on v1)
6969

70-
- Make sure you set the `VUE_APP_SINGLEBOARD_MODE` to `1`
70+
- Make sure you set the `VITE_SINGLEBOARD_MODE` to `1`
7171
- Once started, use the CLI to migrate existing lists to the special board
7272
used as common parent for lists in "singleboard" mode.
7373
```shell
@@ -79,7 +79,7 @@ the steps below:
7979

8080
### If you want to enable the new _boards_ feature and migrate your existing lists to a dedicated board
8181

82-
- Make sure `VUE_APP_SINGLEBOARD_MODE` is **not set** or set to `0`
82+
- Make sure `VITE_SINGLEBOARD_MODE` is **not set** or set to `0`
8383
- Create a new board with the name of your choice
8484
```shell
8585
# Get the created board's slug from the output and use it in the following command
@@ -161,6 +161,9 @@ docker compose up -d
161161
162162
**Available environment variables for the `app` container**
163163
164+
⚠️ The original `VUE_APP_` prefix has been replaced due to the migration to Vite.
165+
You must now use `VITE_` instead.
166+
164167
- **System keys**
165168
- `LISTEN_PORT` (default: `8080`)
166169
- `MONGODB_HOST` (default: `mongodb`)
@@ -171,31 +174,31 @@ docker compose up -d
171174
> MongoDB authentication is not supported yet.
172175
173176
- **Application keys**
174-
- `VUE_APP_APM_ENABLED` (default: `0`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/intro.html)
175-
- `VUE_APP_APM_LOGLEVEL` (default: `warn`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#log-level)
176-
- `VUE_APP_APM_SERVERURL` (default: `http://localhost:8200`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#server-url)
177-
- `VUE_APP_APM_SERVERURLPREFIX` (default: `/intake/v${apiVersion}/rum/events`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#server-url-prefix)
178-
- `VUE_APP_APM_SERVICENAME` [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#service-name)
179-
- `VUE_APP_BOARD_DELETION_ENABLED` (default: `0`) [Reference](https://github.com/nanawel/our-shopping-list/issues/17)
180-
- `VUE_APP_CHECKED_ITEMS_HISTORY_SORT_FIELD` (default: `lastCheckedAt`, see available fields [here](./client/src/models/Item.js))
181-
- `VUE_APP_CHECKED_ITEMS_HISTORY_SORT_ORDER` (default: `desc`)
182-
- `VUE_APP_CLIENT_LOG_CONSOLE_ENABLED` (default: `false`, [see doc here](https://github.com/dev-tavern/vue-logger-plugin/tree/v1.2.3#enabled-vs-consoleenabled))
183-
- `VUE_APP_CLIENT_LOG_ENABLED` (default: `false`, [see doc here](https://github.com/dev-tavern/vue-logger-plugin/tree/v1.2.3#enabled-vs-consoleenabled))
184-
- `VUE_APP_CLIENT_LOG_LEVEL` (default: `debug`)
185-
- `VUE_APP_EDIT_ITEM_ON_CREATE` (default: `0`)
186-
- `VUE_APP_HOME_MESSAGE` (default: _empty_)
187-
- `VUE_APP_I18N_FALLBACK_LOCALE` (default: `en`)
188-
- `VUE_APP_I18N_FORCE_LOCALE` (default: `0`)
189-
- `VUE_APP_I18N_LOCALE` (default: `en`)
190-
- `VUE_APP_LIST_ALL_BOARDS_ENABLED` (default: `0`, has no effect in _singleboard_ mode)
191-
- `VUE_APP_LOCALSTORAGE_KEY_PREFIX` (default: `OurShoppingList_`)
192-
- `VUE_APP_SHORT_TITLE` (default: `OSL`)
193-
- `VUE_APP_SINGLEBOARD_MODE` (default: `0`)
194-
- `VUE_APP_SOCKETIO_CSR_MAXDISCONNECTIONDURATION` (default: `1800000` = 30mn)
195-
- `VUE_APP_SOCKETIO_PING_INTERVAL` (default: `25000` = 25sec.)
196-
- `VUE_APP_SOCKETIO_PING_TIMEOUT` (default: `20000` = 20sec.)
197-
- `VUE_APP_TITLE` (default: `Our Shopping List`)
198-
- `VUE_APP_USE_ITEM_QUICK_SYNTAX` (default: `0`) [Reference](https://github.com/nanawel/our-shopping-list/issues/20)
177+
- `VITE_APM_ENABLED` (default: `0`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/intro.html)
178+
- `VITE_APM_LOGLEVEL` (default: `warn`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#log-level)
179+
- `VITE_APM_SERVERURL` (default: `http://localhost:8200`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#server-url)
180+
- `VITE_APM_SERVERURLPREFIX` (default: `/intake/v${apiVersion}/rum/events`) [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#server-url-prefix)
181+
- `VITE_APM_SERVICENAME` [Reference](https://www.elastic.co/guide/en/apm/agent/rum-js/current/configuration.html#service-name)
182+
- `VITE_BOARD_DELETION_ENABLED` (default: `0`) [Reference](https://github.com/nanawel/our-shopping-list/issues/17)
183+
- `VITE_CHECKED_ITEMS_HISTORY_SORT_FIELD` (default: `lastCheckedAt`, see available fields [here](./client/src/models/Item.js))
184+
- `VITE_CHECKED_ITEMS_HISTORY_SORT_ORDER` (default: `desc`)
185+
- `VITE_CLIENT_LOG_CONSOLE_ENABLED` (default: `false`, [see doc here](https://github.com/dev-tavern/vue-logger-plugin/tree/v1.2.3#enabled-vs-consoleenabled))
186+
- `VITE_CLIENT_LOG_ENABLED` (default: `false`, [see doc here](https://github.com/dev-tavern/vue-logger-plugin/tree/v1.2.3#enabled-vs-consoleenabled))
187+
- `VITE_CLIENT_LOG_LEVEL` (default: `debug`)
188+
- `VITE_EDIT_ITEM_ON_CREATE` (default: `0`)
189+
- `VITE_HOME_MESSAGE` (default: _empty_)
190+
- `VITE_I18N_FALLBACK_LOCALE` (default: `en`)
191+
- `VITE_I18N_FORCE_LOCALE` (default: `0`)
192+
- `VITE_I18N_LOCALE` (default: `en`)
193+
- `VITE_LIST_ALL_BOARDS_ENABLED` (default: `0`, has no effect in _singleboard_ mode)
194+
- `VITE_LOCALSTORAGE_KEY_PREFIX` (default: `OurShoppingList_`)
195+
- `VITE_SHORT_TITLE` (default: `OSL`)
196+
- `VITE_SINGLEBOARD_MODE` (default: `0`)
197+
- `VITE_SOCKETIO_CSR_MAXDISCONNECTIONDURATION` (default: `1800000` = 30mn)
198+
- `VITE_SOCKETIO_PING_INTERVAL` (default: `25000` = 25sec.)
199+
- `VITE_SOCKETIO_PING_TIMEOUT` (default: `20000` = 20sec.)
200+
- `VITE_TITLE` (default: `Our Shopping List`)
201+
- `VITE_USE_ITEM_QUICK_SYNTAX` (default: `0`) [Reference](https://github.com/nanawel/our-shopping-list/issues/20)
199202
200203
### Robots.txt
201204
@@ -256,17 +259,17 @@ location / {
256259
257260
Remember to set the `BASE_URL` variable to the matching web root on each instance.
258261
259-
Make sure you set `VUE_APP_LOCALSTORAGE_KEY_PREFIX` to a unique value too, otherwise clients switching from
262+
Make sure you set `VITE_LOCALSTORAGE_KEY_PREFIX` to a unique value too, otherwise clients switching from
260263
one instance to another might corrupt the internal cache in their browser.
261264
262265
Example:
263266
264267
- 1st instance on https://my.host/public-osl
265268
- `BASE_URL` = `public-osl/`
266-
- `VUE_APP_LOCALSTORAGE_KEY_PREFIX` = `OSL1_`
269+
- `VITE_LOCALSTORAGE_KEY_PREFIX` = `OSL1_`
267270
- 2nd instance on https://my.host/private-osl
268271
- `BASE_URL` = `private-osl/`
269-
- `VUE_APP_LOCALSTORAGE_KEY_PREFIX` = `OSL2_`
272+
- `VITE_LOCALSTORAGE_KEY_PREFIX` = `OSL2_`
270273
- etc.
271274
272275
### Debugging on server side

client/eslint.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import globals from 'globals'
2+
import vue from 'eslint-plugin-vue';
3+
import eslintPlugin from '@eslint/js';
4+
5+
export default [
6+
eslintPlugin.configs.recommended,
7+
{
8+
files: ['*.vue'],
9+
languageOptions: {
10+
parser: await vue.parser,
11+
globals: {
12+
// https://eslint.vuejs.org/user-guide/#specifying-globals-eslint-config-js
13+
...globals.browser
14+
}
15+
},
16+
plugins: {
17+
vue,
18+
},
19+
rules: {
20+
...vue.configs['vue3-recommended'].rules,
21+
},
22+
},
23+
];
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)