Skip to content

Commit 78b7614

Browse files
committed
chore: build with dynamic node --max-old-space-size
2 parents 2f145f8 + 72ff028 commit 78b7614

File tree

5 files changed

+8
-69
lines changed

5 files changed

+8
-69
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ FROM node:lts-alpine AS build-stage
33
# Set environment variables for non-interactive npm installs
44
ENV NPM_CONFIG_LOGLEVEL warn
55
ENV CI true
6+
67
WORKDIR /app
78
COPY package.json pnpm-lock.yaml ./
89
RUN npm install -g pnpm && pnpm i --frozen-lockfile

components.d.ts

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -142,29 +142,7 @@ declare module '@vue/runtime-core' {
142142
IcalMerger: typeof import('./src/tools/ical-merger/ical-merger.vue')['default']
143143
IcalParser: typeof import('./src/tools/ical-parser/ical-parser.vue')['default']
144144
IcoConverter: typeof import('./src/tools/ico-converter/ico-converter.vue')['default']
145-
'IconMdi:brushVariant': typeof import('~icons/mdi/brush-variant')['default']
146-
'IconMdi:contentCopy': typeof import('~icons/mdi/content-copy')['default']
147145
'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default']
148-
IconMdiArrowDown: typeof import('~icons/mdi/arrow-down')['default']
149-
IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default']
150-
IconMdiCamera: typeof import('~icons/mdi/camera')['default']
151-
IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default']
152-
IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default']
153-
IconMdiClose: typeof import('~icons/mdi/close')['default']
154-
IconMdiContentCopy: typeof import('~icons/mdi/content-copy')['default']
155-
IconMdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default']
156-
IconMdiDownload: typeof import('~icons/mdi/download')['default']
157-
IconMdiEye: typeof import('~icons/mdi/eye')['default']
158-
IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default']
159-
IconMdiHeart: typeof import('~icons/mdi/heart')['default']
160-
IconMdiPause: typeof import('~icons/mdi/pause')['default']
161-
IconMdiPlay: typeof import('~icons/mdi/play')['default']
162-
IconMdiRecord: typeof import('~icons/mdi/record')['default']
163-
IconMdiRefresh: typeof import('~icons/mdi/refresh')['default']
164-
IconMdiSearch: typeof import('~icons/mdi/search')['default']
165-
IconMdiTranslate: typeof import('~icons/mdi/translate')['default']
166-
IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default']
167-
IconMdiVideo: typeof import('~icons/mdi/video')['default']
168146
ImageConverter: typeof import('./src/tools/image-converter/image-converter.vue')['default']
169147
ImageExifReader: typeof import('./src/tools/image-exif-reader/image-exif-reader.vue')['default']
170148
ImageToAsciiArt: typeof import('./src/tools/image-to-ascii-art/image-to-ascii-art.vue')['default']
@@ -234,57 +212,12 @@ declare module '@vue/runtime-core' {
234212
MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default']
235213
MongoObjectidConverter: typeof import('./src/tools/mongo-objectid-converter/mongo-objectid-converter.vue')['default']
236214
MorseConverter: typeof import('./src/tools/morse-converter/morse-converter.vue')['default']
237-
NA: typeof import('naive-ui')['NA']
238-
NAlert: typeof import('naive-ui')['NAlert']
239215
NanoMemo: typeof import('./src/tools/nano-memo/nano-memo.vue')['default']
240216
'NanoMemo.content': typeof import('./src/tools/nano-memo/nano-memo.content.md')['default']
241-
NAutoComplete: typeof import('naive-ui')['NAutoComplete']
242217
NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default']
243-
NButton: typeof import('naive-ui')['NButton']
244-
NCard: typeof import('naive-ui')['NCard']
245-
NCheckbox: typeof import('naive-ui')['NCheckbox']
246-
NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup']
247-
NCode: typeof import('naive-ui')['NCode']
248-
NCollapseTransition: typeof import('naive-ui')['NCollapseTransition']
249-
NColorPicker: typeof import('naive-ui')['NColorPicker']
250218
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
251-
NDatePicker: typeof import('naive-ui')['NDatePicker']
252-
NDivider: typeof import('naive-ui')['NDivider']
253-
NDynamicInput: typeof import('naive-ui')['NDynamicInput']
254-
NEllipsis: typeof import('naive-ui')['NEllipsis']
255-
NForm: typeof import('naive-ui')['NForm']
256-
NFormItem: typeof import('naive-ui')['NFormItem']
257-
NGi: typeof import('naive-ui')['NGi']
258219
NginxFormatter: typeof import('./src/tools/nginx-formatter/nginx-formatter.vue')['default']
259-
NGrid: typeof import('naive-ui')['NGrid']
260-
NH1: typeof import('naive-ui')['NH1']
261-
NH2: typeof import('naive-ui')['NH2']
262-
NH3: typeof import('naive-ui')['NH3']
263220
NIcon: typeof import('naive-ui')['NIcon']
264-
NImage: typeof import('naive-ui')['NImage']
265-
NInput: typeof import('naive-ui')['NInput']
266-
NInputGroup: typeof import('naive-ui')['NInputGroup']
267-
NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel']
268-
NInputNumber: typeof import('naive-ui')['NInputNumber']
269-
NLayout: typeof import('naive-ui')['NLayout']
270-
NLayoutSider: typeof import('naive-ui')['NLayoutSider']
271-
NLi: typeof import('naive-ui')['NLi']
272-
NMenu: typeof import('naive-ui')['NMenu']
273-
NP: typeof import('naive-ui')['NP']
274-
NProgress: typeof import('naive-ui')['NProgress']
275-
NRadio: typeof import('naive-ui')['NRadio']
276-
NRadioGroup: typeof import('naive-ui')['NRadioGroup']
277-
NScrollbar: typeof import('naive-ui')['NScrollbar']
278-
NSelect: typeof import('naive-ui')['NSelect']
279-
NSlider: typeof import('naive-ui')['NSlider']
280-
NSpace: typeof import('naive-ui')['NSpace']
281-
NSpin: typeof import('naive-ui')['NSpin']
282-
NStatistic: typeof import('naive-ui')['NStatistic']
283-
NSwitch: typeof import('naive-ui')['NSwitch']
284-
NTable: typeof import('naive-ui')['NTable']
285-
NTag: typeof import('naive-ui')['NTag']
286-
NTree: typeof import('naive-ui')['NTree']
287-
NUl: typeof import('naive-ui')['NUl']
288221
NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default']
289222
OcrImage: typeof import('./src/tools/ocr-image/ocr-image.vue')['default']
290223
Option43Generator: typeof import('./src/tools/option43-generator/option43-generator.vue')['default']

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
],
2323
"scripts": {
2424
"dev": "vite",
25-
"build": "vue-tsc --noEmit && NODE_OPTIONS=--max_old_space_size=7000 vite build",
25+
"build": "vue-tsc --noEmit && . ./set_node_mem.sh && vite build",
2626
"preview": "vite preview --port 5050",
2727
"test": "npm run test:unit",
2828
"test:unit": "vitest --environment jsdom",

set_node_mem.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
memory=$(awk '/MemTotal/{print $2}' /proc/meminfo);
2+
memory=$((memory / 1024));
3+
node_options="--max-old-space-size=$((memory - 1024))";
4+
echo "NODE_OPTIONS=$node_options";
5+
export NODE_OPTIONS="$node_options";

vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export default defineConfig({
118118
build: {
119119
target: 'esnext',
120120
// sourcemap: false,
121-
// minify: false,
121+
minify: !process.env.VERCEL,
122122
// cssMinify: false,
123123
rollupOptions: {
124124
external: ['node:fs/promises', 'regex', './out/isolated_vm', 'isolated-vm'],

0 commit comments

Comments
 (0)