Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 April 24

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
Ты собираешь в этом же контейнере, или в контейнер уже собранное пихаешь?
Проект с SSR?
хоть сср хоть нет, при сборке в контейнере
источник

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
Ты собираешь в этом же контейнере, или в контейнер уже собранное пихаешь?
Проект с SSR?
1) пока в этом же. сечайс разделяю докерфайл на стейджи
2) да на сср
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
Alexey Korzhavin ★
1) пока в этом же. сечайс разделяю докерфайл на стейджи
2) да на сср
^
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
Alexey Korzhavin ★
1) пока в этом же. сечайс разделяю докерфайл на стейджи
2) да на сср
в контейнер грузи сборку на алпайне
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
вопрос у меня уже в том, что на алпайне 13 сборке весит на ~150мб больше чем на 12, работоспособность таже, где мать его оптимизация
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
но это уже риторика
источник

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Alex Epifanov
в контейнер грузи сборку на алпайне
FROM node:12-alpine AS build

WORKDIR /app
COPY ./package.json .
RUN yarn

COPY . .
RUN yarn build

FROM node:12-alpine AS run

WORKDIR /app
COPY --from=build /app/.nuxt .
COPY --from=build /app/node_modules .
COPY --from=build /app/dist .

ENTRYPOINT ["yarn", "start"]

вот так?
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
у меня так node:12.16.1-alpine
источник

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Alex Epifanov
у меня так node:12.16.1-alpine
12 берет боследний лтс
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Alexey Korzhavin ★
FROM node:12-alpine AS build

WORKDIR /app
COPY ./package.json .
RUN yarn

COPY . .
RUN yarn build

FROM node:12-alpine AS run

WORKDIR /app
COPY --from=build /app/.nuxt .
COPY --from=build /app/node_modules .
COPY --from=build /app/dist .

ENTRYPOINT ["yarn", "start"]

вот так?
Ты копируешь все нод модули, включая те, которые нужны только для сборки
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
я не уверен что node:12.16.1-alpine последний, я на нем тестил, у меня меньше всего получилось
источник

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
Ты копируешь все нод модули, включая те, которые нужны только для сборки
как избавиться от этого?
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Alexey Korzhavin ★
как избавиться от этого?
после сборки (отдельным, вроде, этапом) делать npm install --only=production
источник
2020 April 25

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
после сборки (отдельным, вроде, этапом) делать npm install --only=production
FROM node:12-alpine AS build

WORKDIR /app
COPY ./package.json .
RUN yarn

COPY . .
RUN yarn build

FROM node:12-alpine AS modules

WORKDIR /app
COPY ./package.json .
RUN yarn --production

FROM node:12-alpine AS run

WORKDIR /app
COPY --from=build /app/.nuxt .
COPY --from=modules /app/node_modules .
COPY --from=build /app/dist .

ENTRYPOINT ["yarn", "start"]
источник

D

Dima in Nuxt.js — русскоговорящее сообщество
Кому интересно чем закончилась эпопея с husky
итого для работы husky нужно Node >= 10 and Git >= 2.13.0
Если вы работаете из debian то там последняя версия git 2.11.0
Что бы всё работало нужно понизить версию husky
npm i -D husky@2.1.0 lint-staged@8.1.5
Далее все работать будет
 "husky": {
   "hooks": {
     "pre-commit": "lint-staged"
   }
 },
 "lint-staged": {
   "*.(js|vue)": [
     "prettier -c",
     "eslint --cache --ext .js,.vue --fix --color --ignore-path .gitignore . --ignore-pattern .eslintignore"
   ]
 }
источник

D

Dima in Nuxt.js — русскоговорящее сообщество
prettier.js
 module.exports = {
 useTabs: true,
 printWidth: 150,
 tabWidth: 2,
 trailingComma: 'es5',
 singleQuote: true,
 semi: false,
 bracketSpacing: true,
 vueIndentScriptAndStyle: true,
 jsxBracketSameLine: true,
 htmlWhitespaceSensitivity: 'strict',
 arrowParens: 'always',
 endOfLine: 'auto',
 quoteProps: 'as-needed',
 rangeStart: 0,
 rangeEnd: 0,
 proseWrap: 'preserve',
}
источник

D

Dima in Nuxt.js — русскоговорящее сообщество
eslintrc.js
module.exports = {
 root: true,
 env: {
   browser: true,
   node: true
 },
 parserOptions: {
   parser: 'babel-eslint'
 },
 extends: [
   '@nuxtjs',
   'prettier',
   'prettier/vue',
   'plugin:prettier/recommended',
   'plugin:nuxt/recommended'
 ],
 // add your custom rules here
 rules: {
   'nuxt/no-cjs-in-config': 'off',
   'prettier/prettier': 'error',
   'no-unused-vars': 'error',
   semi: 'off',
   'comma-dangle': 'off',
   'no-plusplus': 'off',
   'max-len': [
     'error',
     300,
     {
       code: 80,
       ignoreUrls: true,
       tabWidth: 4,
       ignoreComments: true,
       ignoreTrailingComments: true,
       ignoreStrings: true,
       ignoreTemplateLiterals: true,
       ignoreRegExpLiterals: true,
     },
   ],
   'prefer-destructuring': 'off',
   'no-tabs': [
     'error',
     {
       allowIndentationTabs: true,
     },
   ],
   'no-restricted-imports': [
     'error',
     {
       paths: ['fs'],
       patterns: ['eslint/*'],
     },
   ],
   'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'],
   'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
   'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
 },
}
источник

AK

Alexey Korzhavin ★ in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
после сборки (отдельным, вроде, этапом) делать npm install --only=production
спасибо всем кто помогал. сбил с 2ух гигов до 460 мб
источник

D

Dima in Nuxt.js — русскоговорящее сообщество
package.json  
что касается еслинта хаски и lint-stage

devDependencies
    "@nuxtjs/eslint-config": "^2.0.0",
   "@nuxtjs/eslint-module": "^1.0.0",
   "babel-eslint": "^10.0.1",
   "eslint": "^6.1.0",
   "eslint-config-prettier": "^6.10.0",
   "eslint-plugin-nuxt": ">=0.4.2",
   "eslint-plugin-prettier": "^3.1.2",
   "husky": "^2.1.0",
   "lint-staged": "^8.1.5",
   "prettier": "^1.19.1",
источник

AE

Alex Epifanov in Nuxt.js — русскоговорящее сообщество
Alexey Korzhavin ★
спасибо всем кто помогал. сбил с 2ух гигов до 460 мб
🥳
источник