묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
ios. 재빌드후 icon 문제
빌드 에러가 나서 cd ios rm -rf Podfile.lock Podscd .. npx pod-install ios 처리후 다시 yarn ios 로 실행을 했는데요 그이후 a 로 안드로이드도실행했구요 이후에 ios 에서 icon이 나오지않는 문제가 생겼습니다. 그전에는 정상적으로 icon이 나왔었거든요 ios info.plist에도 해당 ttf 다 잘 들어있고 재빌드전까진 icon이 잘 나왔는데 어디를 살펴봐야할지 조언을 구합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
findAndCount 함수에서 왜 count가 0이 아닌 값들은 제외 되었는지 궁금합니다.
const userAndCount = await this.userRepository.findAndCount({ take: 3, }); 위 와 같은 코드에서 결과 값으로 count가 변경 되어 있는 id 1,3의 값은 왜 가져오지 않았는지 궁금합니다!
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
yarn start 문제
안녕하세요 강사님 강의 잘 듣고 있습니다.다름이 아니라 yarn start + i 를 누르면 xcode가 자동 실행돼서 에뮬레이터가 잘 보이지만 yarn start + a를 실행하면 이미지와 같은 에러가 발생하네요.안드로이드 스튜디오를 실행하고 device manager에서 device run 하면 에러가 발생하진 않아요. 하지만 수동으로 계속 켜야하는 번거로움이 있네요..ㅠ 안드로이드 스튜디오도 xcode처럼 yarn start + a를 하면 자동으로 실행될 수 있도록 하는 방법이 있을까요?
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
소스코드 파일 질문
안녕하세요.강의에 쓰시는 이미지 파일 등을 가져오기 위해 소스코드 수업 자료를 다운받았는데 서버쪽 파일만 있는것 같습니다. 프론트엔드쪽 소스나 assets폴더에 있는 파일을 다운받으려면 어떻게 해야하는지 말씀 주시면 감사하겠습니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
relation option "nullable : false" 로 설정했는데, 테이블에 insert가 되고 있습니다.
안녕하세요 선생님~위와 같이 세팅해서user/profile로 post 요청을 보내면 500 에러가 나야하는걸로 알고 있는데,이처럼 잘 들어가 버리네요ㅜ`users` 로 get요청을 보내도 profile이 null이 들어간 상태로 조회됩니다.개발환경 버전도 올려드립니다~
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
docker-compose yaml 파일 깃 업로드
안녕하세요 코팩님 nestjs/config 모듈과 process.env 를 이용해서 환경변수 파일을 작성하고 환경변수를 불러오고 하잖아요. 그런데 docker-compose.yaml 파일에도 db password나 이런게 존재하는데, docker-compose 파일은 깃허브에 보통 포함을 안 하나요?
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
gnb 만들기를 실무 next js 프로젝트에서 사용할수 있나요?
catch-all segments 를 루트 페이지에 적용해서nextjs 의 파일 기반 라우트를 무력화 하기 때문에nextjs 에서 제공해주는 다양한 라우터 기능들route intercepting , parallel route 같은것들은사용할수 없게 된다?맞나여?그럼 실무의 next js 프로젝트에서 똑같이 gnb 를 구현 하면 안되겠죠?단순히 수업을 위해 임의로 구현한 포트폴리오 프로젝트용gnb 라고 보면 되는거져?아니면 실무에서라도 catch-all segments [...slug] 폴더를 디폴트 페이지가 아니라 특정 하위 페이지에 대해서만 적용 해서 구현 하는식으로 실무에서도 사용 할수 있나여?그리고 순수 바닐라 js를 이용한 구현 부분도 실무에서는 별로 안쓸것 같고 어려울것 같아서 skip 해도 되나여?
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
회원가입시 QueryFailedError 에러
회원가입시 이러한 에러가 계속 발생합니다. console.log로test@test.com qwer1234 email, password는 들어가는것도 확인했고 auth/signup error를 catch했을땐 409code로 에러가 들어왔습니다.무엇이 문제일까요...?중복이 문제인가 싶어 다른 여러 아이디로도 해봤는데 계속해서 저러한 에러가 뜨면서 실패하고있습니다ㅜㅜ QueryFailedError: duplicate key value violates unique constraint "UQ_e12875dfb3b1d92d7d7c5377e22" at PostgresQueryRunner.query (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/driver/postgres/PostgresQueryRunner.ts:331:19) at processTicksAndRejections (node:internal/process/task_queues:95:5) at InsertQueryBuilder.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/query-builder/InsertQueryBuilder.ts:163:33) at SubjectExecutor.executeInsertOperations (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:435:42) at SubjectExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:137:9) at EntityPersistExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/EntityPersistExecutor.ts:182:21) at AuthService.signup (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/auth/auth.service.ts:43:7) at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-proxy.js:9:17 { query: 'INSERT INTO "user"("loginType", "email", "password", "nickname", "imageUri", "kakaoImageUri", "RED", "YELLOW", "GREEN", "BLUE", "PURPLE", "createdAt", "updatedAt", "deletedAt", "hashedRefreshToken") VALUES ($1, $2, $3, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) RETURNING "id", "RED", "YELLOW", "GREEN", "BLUE", "PURPLE", "createdAt", "updatedAt", "deletedAt"', parameters: [ 'email', 'test@test.com', '$2a$10$hlFtQkbll6R0pJNkTywGh.DaRGVm1uhu9DJm9c.Q0OeduuMRzdNyK' ], driverError: error: duplicate key value violates unique constraint "UQ_e12875dfb3b1d92d7d7c5377e22" at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/pg/lib/client.js:526:17 at processTicksAndRejections (node:internal/process/task_queues:95:5) at PostgresQueryRunner.query (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/driver/postgres/PostgresQueryRunner.ts:260:25) at InsertQueryBuilder.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/query-builder/InsertQueryBuilder.ts:163:33) at SubjectExecutor.executeInsertOperations (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:435:42) at SubjectExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:137:9) at EntityPersistExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/EntityPersistExecutor.ts:182:21) at AuthService.signup (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/auth/auth.service.ts:43:7) at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-proxy.js:9:17 { length: 234, severity: 'ERROR', code: '23505', detail: 'Key (email)=(test@test.com) already exists.', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'user', column: undefined, dataType: undefined, constraint: 'UQ_e12875dfb3b1d92d7d7c5377e22', file: 'nbtinsert.c', line: '670', routine: '_bt_check_unique' }, length: 234, severity: 'ERROR', code: '23505', detail: 'Key (email)=(test@test.com) already exists.', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'user', column: undefined, dataType: undefined, constraint: 'UQ_e12875dfb3b1d92d7d7c5377e22', file: 'nbtinsert.c', line: '670', routine: '_bt_check_unique' } QueryFailedError: duplicate key value violates unique constraint "UQ_e12875dfb3b1d92d7d7c5377e22" at PostgresQueryRunner.query (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/driver/postgres/PostgresQueryRunner.ts:331:19) at processTicksAndRejections (node:internal/process/task_queues:95:5) at InsertQueryBuilder.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/query-builder/InsertQueryBuilder.ts:163:33) at SubjectExecutor.executeInsertOperations (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:435:42) at SubjectExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:137:9) at EntityPersistExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/EntityPersistExecutor.ts:182:21) at AuthService.signup (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/auth/auth.service.ts:43:7) at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-proxy.js:9:17 { query: 'INSERT INTO "user"("loginType", "email", "password", "nickname", "imageUri", "kakaoImageUri", "RED", "YELLOW", "GREEN", "BLUE", "PURPLE", "createdAt", "updatedAt", "deletedAt", "hashedRefreshToken") VALUES ($1, $2, $3, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) RETURNING "id", "RED", "YELLOW", "GREEN", "BLUE", "PURPLE", "createdAt", "updatedAt", "deletedAt"', parameters: [ 'email', 'test@test.com', '$2a$10$DfBqqh82WjRRFN5Fj2zJu.RiqJzzJCD4vR5xA1.y2zRxaAol0pP6W' ], driverError: error: duplicate key value violates unique constraint "UQ_e12875dfb3b1d92d7d7c5377e22" at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/pg/lib/client.js:526:17 at processTicksAndRejections (node:internal/process/task_queues:95:5) at PostgresQueryRunner.query (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/driver/postgres/PostgresQueryRunner.ts:260:25) at InsertQueryBuilder.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/query-builder/InsertQueryBuilder.ts:163:33) at SubjectExecutor.executeInsertOperations (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:435:42) at SubjectExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/SubjectExecutor.ts:137:9) at EntityPersistExecutor.execute (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/persistence/EntityPersistExecutor.ts:182:21) at AuthService.signup (/Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/src/auth/auth.service.ts:43:7) at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/kwonbeomjun/Documents/rn/rn-baro_review-v1/server/node_modules/@nestjs/core/router/router-proxy.js:9:17 { length: 234, severity: 'ERROR', code: '23505', detail: 'Key (email)=(test@test.com) already exists.', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'user', column: undefined, dataType: undefined, constraint: 'UQ_e12875dfb3b1d92d7d7c5377e22', file: 'nbtinsert.c', line: '670', routine: '_bt_check_unique' }, length: 234, severity: 'ERROR', code: '23505', detail: 'Key (email)=(test@test.com) already exists.', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'user', column: undefined, dataType: undefined, constraint: 'UQ_e12875dfb3b1d92d7d7c5377e22', file: 'nbtinsert.c', line: '670', routine: '_bt_check_unique' }
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
staleTime과 invalidateQueries
안녕하세요 선생님!우선 좋은 강의 감사합니다. 다름이 아니라 앱 강의를 보고 공부를 하던 중에 react-query에 대해 궁금한 점이 있어서 질문드립니다. 게시글을 작성할 때 invalidateQuries를 이용해서 특정 달에 작성한 게시물 리스트를 조회해오는 캐시 데이터를 무효화 시켰습니다. 강의를 들을 때는 "아! 그렇구나~" 하고 지나갔던 부분인데staleTime의 기본 값이 0이라는 사실을 알고 의문이 생겼습니다. reactQuery에서 staleTime을 지정하지 않으면 기본값 0이 적용되며 이는 데이터를 들고오자 마자 해당 데이터가 stale 상태로 변경된다는 것을 의미한다고 합니다. 그래서 무효화 쿼리가 없어도, staleTime의 값이 0이기 때문에, 캘린더 화면에 들어갔을 때는 새로 저장한 게시물에 대한 정보가 보여야 할 것으로 생각되는데, 생각과 다르게 invalidateQuery를 사용해야 하는 이유에 대해서 알 수 있을까요? 감사합니다!
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
draw적용 후 텍스트 문제 발생
맥으로 진행하고 있습니다.draw 수업을 진행하면서 에러가 나서 수업내용대로 바벨안에 플러그인 넣고 캐시 삭제 후 재실행했는데 이런 문제가 발생하네요. <Text>문제가 왜 갑자기 생겼는지 모르겠습니다.
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
[1-5] ruby 버전 문제
export PATH=$HOME/.rbenv/shims:$PATH eval "$(rbenv init - zsh)"M1 맥북을 사용 중인데, zshrc 파일에 Ruby 버전을 변경하는 코드를 추가했지만 정상적으로 작동하지 않아 인텔 맥에서 사용하는 환경 변수 코드를 사용하니 버전이 변경되었습니다.그러나 버전이 변경되었다고 해도 프로젝트를 생성할 때 환경 설정 문제가 발생합니다.
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
findOne 사용 이유
강의 8:23에 createChat 함수의 리턴값으로 save 함수에서 반환된 chat을 사용하지 않고 findOne 함수를 통해 조회한 chat을 사용하신 이유가 궁금합니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
배포 관련 질문
안녕하세요포트폴리오를 하나 만들고 싶어서 슬리액 프론트 관련해서 다 클론코딩하였는데강사님이 배포하신거 비슷하게 sleat.nodebird.com 처럼 유사하게 배포할려면 리액트 노드버드 강좌에서aws 나 배포관련 부분만 들으면 될까요?
-
미해결실전 프로젝트로 배우는 타입스크립트
프로젝트 완성본 github에 어디있나요?
프로젝트 완성본 github에 어디있나요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
섹션26 FileIntercepter적용문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 통합 링크https://links.codefactory.aiFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
섹션26 FileIntercepter적용 질의
분명 postman으로 FormData로 설정하신후title,content,image를 보내셨는데 어떻게Nestjs에서 @Body()로 받을수 있나요 Http요청이니 req.body 형식으로 접근 가능한게 아닐까요??
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
configService와 process.env
안녕하세요 코팩님!class 작성 시에 다른 class를 상속하여 작성하는 경우 있잖아요nestjs/passport를 이용해서 구글 oauth 로그인을 구현하려고 합니다.import { PassportStrategy } from '@nestjs/passport'; import { Strategy } from 'passport-google-oauth20'; import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; @Injectable() export class GoogleStrategy extends PassportStrategy(Strategy, 'google') { constructor(private readonly configService: ConfigService) { super({ clientID: this.configService.get('GOOGLE_CLIENT_ID'), clientSecret: this.configService.get('GOOGLE_CLIENT_SECRET'), callbackURL: 'http://localhost:3000/auth/google/callback', scope: ['email', 'profile'], }); }이 경우에super() 호출 전에 this를 참조하려고 해서 에러가 발생합니다.이런 경우에는 불가피하게 그냥 @Injectable() export class GoogleStrategy extends PassportStrategy(Strategy, 'google') { constructor() { super({ clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, callbackURL: 'http://localhost:3000/auth/google/callback', scope: ['email', 'profile'], }); }이렇게 직접 환경변수를 적어주는 방법 밖에는 없을까요?
-
해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
타입스크립트교과서 p39 쪽 코드가 이해가 안되요
const func: (amount: number, unit: string) => string = (amount, unit) => amount + unit; gpt 이용해서 물어봐도 잘 이해가 안되서 질문남겨요! 이해가 안되는 부분은string = (amount, unit) 이 부분인데, 책 p40을 보면함수 리터럴 타입에서는 반환값의 표기법이 다르다는 점을 기억하세요. 콜론, 대신 => 를 사용한다고 써있네요 질문을 쓰다보니 이해가 되는것 같은데,func 함수는number 타입인 amount와 string 타입인 unit 을 받아서 string 타입을 반환한다이게 맞을것 같은데, 혹시 맞을까요?..
-
미해결따라하며 배우는 리액트 A-Z
Banner.css에 대해서
강사님은 내부적으로 Banner.css에 대한 내용을 복붙하셨는데,강의 영상에서 Banner.css 내에 소스가 다표기가 되지 않아서동일하게 진행하기 어려운 것 같습니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
[배포하기]를 수강 이후에 개발한 프로젝트를aws에 배포하는 중에서 문제가 발생하여 질문 드려요 devServer: { historyApiFallback: true, host: '퍼블릭 IPv4 주소', port: 3333, devMiddleware: { publicPath: '/dist/' }, static: { directory: path.resolve(__dirname) }, },host에 퍼블릭 IPv4 주소 을 설정하고 aws에 port 3333 포트를 열어 주었습니다. "scripts": { "dev": "webpack serve --env development", "build": "webpack", "start": "webpack serve" },npm run build 이후에npm run start 할 경우(퍼블릭 IPv4 주소 -> ex: 11.111.111.11 Error: listen EADDRNOTAVAIL: address not available 11.111.111.11:3333 at Server.setupListenHandle [as _listen2] (net.js:1314:21) at listenInCluster (net.js:1379:12) at doListen (net.js:1516:7) at processTicksAndRejections (internal/process/task_queues.js:83:21) { code: 'EADDRNOTAVAIL', errno: -99, syscall: 'listen', address: '11.111.111.11', port: 3333 }오류가 발생했습니다. 무엇이 문제인지 잘 모르겠어서 질문드립니다. [aws 실행상태]aws_인스턴스 한개에 back,front 폴더를 git을 사용 하여 백,프론트를 실행하고 있습니다.[전체 코드 - webpack.config.js]const path = require('path'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); const webpack = require('webpack'); const isDevelopment = process.env.NODE_ENV !== 'production'; const config = { name: 'google_meet', mode: isDevelopment ? 'development' : 'production', devtool: isDevelopment ? 'hidden-source-map' : 'inline-source-map', resolve: { extensions: ['.js', '.jsx', '.json'], alias: { '@hooks': path.resolve(__dirname, 'hooks'), '@components': path.resolve(__dirname, 'components'), '@layouts': path.resolve(__dirname, 'layouts'), '@pages': path.resolve(__dirname, 'pages'), '@utils': path.resolve(__dirname, 'utils'), }, }, entry: { app: './client', }, module: { rules: [ { test: /\.jsx?$/, loader: 'babel-loader', options: { presets: [ [ '@babel/preset-env', { targets: { browsers: ['last 2 chrome versions'] }, debug: isDevelopment, }, ], '@babel/preset-react', ], env: { development: { plugins: [require.resolve('react-refresh/babel')], }, }, }, exclude: path.join(__dirname, 'node_modules'), }, { test: /\.css?$/, use: ['style-loader', 'css-loader'], }, ], }, plugins: [new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' })], output: { path: path.join(__dirname, 'dist'), filename: '[name].js', publicPath: '/dist/', }, devServer: { historyApiFallback: true, host: '퍼블릭 IPv4 주소', port: 3333, devMiddleware: { publicPath: '/dist/' }, static: { directory: path.resolve(__dirname) }, }, }; if (isDevelopment && config.plugins) { config.plugins.push(new webpack.HotModuleReplacementPlugin()); config.plugins.push(new ReactRefreshWebpackPlugin()); } if (!isDevelopment && config.plugins) { } module.exports = config;