게시글
고민있어요
배포 관련 질문사항있습니다.
- 0
- 1
- 259
질문&답변
Menu에 style 질문있습니다 !
혹시 CretaeMenu style안에 있는 & > div 에서 position : absolute 속성으로 인해 정의가 가능한걸까요 ? & > div {
- 0
- 1
- 123
질문&답변
이건 무슨 오류인가요 ㅠㅠㅠ
(사진) 바꼈습니다 ㅠ
- 0
- 1
- 177
질문&답변
이게 무슨 에러인가요 ㅠㅠ
webpack.config.ts 파일내용입니다. import path from 'path'; // import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin'; import webpack from 'webpack'; const isDevelopment = process.env.NODE_ENV !== 'production'; const config: webpack.Configuration = { name: 'slack' , mode: isDevelopment ? 'development' : 'production' , devtool: isDevelopment ? 'hidden-source-map' : 'inline-source-map' , resolve: { extensions: ['.ts', '.js', 'jsx', 'tsx', '.json'], alias: { '@hooks': path.resolve(__dirname, 'hooks') , '@components': path.resolve(__dirname, 'components') , '@layouts': path.resolve(__dirname, 'layouts') , '@pages': path.resolve(__dirname, 'pages') , '@typings': path.resolve(__dirname, 'typings') }, }, entry: { app: './client', }, module: { rules: [ { test: /\.tsx?$/, loader: 'babel-loader', options: { presets: [ [ '@babel/preset-env', { targets: { browsers: ['last 2 versions', 'safari >= 7'] }, debug: isDevelopment, }, ], '@babel/preset-react' , '@bable/preset-typescript' ], }, exclude: path.join(__dirname, 'node_modules'), }, // babel이 css도 javascript로 바꿔주기 때문에 여기서 css관련 loader를 설정해줘야함 { test: /\.css$/, use: ['style-loader', 'css-loader'], }, ], }, plugins: [ // new ForkTsCheckerWebpackPlugin({ // async: false, // }), // react 에서 NODE_ENV 변수를 사용할 수 있게 만들어줌 원래는 backend에서만 실행 가능함(노드 런타임 때만 접근 가능하지만) // 해당 설정을 해주면 NODE_ENV 접근 가능 new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' }), ], // 위에 entry부터 뚝딱뚝딱 설정해서 나온 파일들이 output에 저장 됨. output: { // alecture의 dist 폴더 = alecture/dist 폴더 path: path.join(__dirname, 'dist'), // 여기 name은 entry의 key 값이 됨. entry key는 여러개를 만들 수 있음 filename: '[name].js', publicPath: '/dist/', }, // devServer: { // historyApiFallback: true, // port: 3090, // publickPath: '/dist/', // proxy: { // } // } }; // 개발환경일 때 쓸 플러그인들 if (isDevelopment && config.plugins) { // config.plugins.push(new webpack.HotModuleReplacementPlugin()); // config.plugins.push(new ReactRefreshWebpackPlugin()); // config.plugins.push(new BundleAnalyzerPlugin({ analyzeMode: 'server', openAnalyzer: false })); } // 배포환경일 때 if (!isDevelopment && config.plugins) { // config.plugins.push(new webpack.LoaderOptionsPlugin({ minimize: true })); // config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: 'static' })); }
- 1
- 2
- 507
질문&답변
지룸ㄴ있ㅇㅅ브니다
i,j := 3,1 이면 i := 3 j := 1 이렇게 ㄷ생각하면 되는건가요 ?
- 0
- 2
- 190
질문&답변
TypeError: nextCallback is not a function (next-redux-wrapper 7.0)
오우 정말 감사합니다 한참 삽질했네요
- 11
- 6
- 1.1K
질문&답변
제로초님 질문있습니다
index.js 의 내용입니다 import axios from 'axios'; import Head from 'next/head'; import React, { useEffect } from 'react'; import { END } from 'redux-saga'; import MainSection from '../components/MainSection'; import { LOAD_PRODUCT_TYPE_REQUEST, LOAD_USER_INFO_REQUEST, } from '../reducers/action'; import wrapper from '../store/configureStore'; const index = () => { console.log('index 페이지 들어옴'); // useEffect(() => { // localStorage.getItem('vintage-info-user'); // }, []); return ( Head> title>폴로딩고title> Head> {/* 섹션 */} MainSection /> {/* 상품페이지 */} ); }; export const getServerSideProps = wrapper.getServerSideProps( async (context) => { // index js의 리듀서 구조를 바꿔야함 중첩되게 끔 axios.defaults.headers.Cookie = ''; // 로그인을 공유하는 상황을 막기 위해서 const cookie = context.req ? context.req.headers.cookie : ''; // console.log('쿠키 : ', cookie); // defaults 쿠기 설정 (로그인 했을 경우에만) if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_USER_INFO_REQUEST, }); // 첫 파에지 랜딩에는 최근 등록된 상품 기준으로 보여주거나 업로드 날짜가 가장 최근인 애들을 보여줘야함 context.store.dispatch({ type: LOAD_PRODUCT_TYPE_REQUEST, data: 'all', }); // 위에 REQUEST가 SUCCESS로 바뀔 때 까지 기다려주는 장치임 // 공식문서에 나옴 context.store.dispatch(END); await context.store.sagaTask.toPromise(); // store.sagatask에서 등록해놓음(index.js에서) /// ///////////////////////////////////////////////// } ); export default index; ////////////////////////////// MainSection.js내용입니다. import React, { useEffect, useRef } from 'react'; import { gsap } from 'gsap'; import { ScrollTrigger } from 'gsap/dist/ScrollTrigger'; import { useDispatch } from 'react-redux'; import { SectionOne, SectionTwo, SectionThree } from '../style/SectionStyle'; import Product from './Product'; import { ProductStyle } from '../style/ProductStyle'; import { addPost } from '../reducers/product/productAction'; // register ScrollTrigger gsap.registerPlugin(ScrollTrigger); const MainSection = () => { const dispatch = useDispatch(); const refSlide1 = useRef(null); const refSlide2 = useRef(null); const refSlide3 = useRef(null); const revealRef1 = useRef(null); const onClick = () => { dispatch(addPost); }; useEffect(() => { // 임시, 확인후 삭제 => 인증키가 없어서 401뜨면 cors 문제 해결된거 맞음 // axios.get('2/tweets/search/recent').then(function (response) { // console.log('응답결과', response); // }); // const sections = [refSlide1, refSlide2, refSlide3].map( // (ref) => ref.current // ); // const triggers = sections.map((panel) => { // return ScrollTrigger.create({ // trigger: panel, // start: "top top", // end: "+=50%", // pin: true, // scrub: 3, // pinSpacing: true, // }) // }) // const snap = ScrollTrigger.create({ // snap: 1 / (sections.length - 1), // }) // return function cleanup() { // triggers.map((trigger) => trigger.kill()) // snap.kill() // } }, []); useEffect(() => { const texts = [revealRef1].map((ref) => ref.current); gsap.from(refSlide1.current, { duration: 1, autoAlpha: 0, ease: 'none', delay: 0.1, }); texts.forEach((el) => { gsap.fromTo( el, { autoAlpha: 0, }, { duration: 1, autoAlpha: 1, ease: 'none', scrollTrigger: { trigger: el, start: 'top center+=100', toggleActions: 'play none none reverse', }, } ); }); }, []); return ( SectionOne ref={refSlide1}> div className="section__image section__image--a" /> div className="showcase_contents"> h1>90% SALEh1> span>세일 기간 중 교환 및 반품이 불가능합니다.span> div> SectionOne> SectionTwo ref={refSlide2}> div className="showcase_contents" ref={revealRef1}> ul className="main_banner_lists"> li> a href="#"> img src="images/main-banner-top-1.jpg" /> a> p className="title"> span>TIE_DYE_TSHIRTspan> p> p className="summary">다양한 타이다이 티셔츠p> li> li> a href="#"> img src="images/main-banner-top-2.jpg" /> a> p className="title"> span>HAWAIAN SHIRTspan> p> p className="summary">하와이안 셔츠p> li> li> a href="#"> img src="images/main-banner-top-3.jpg" /> a> p className="title"> span>SWEATSHIRTspan> p> p className="summary">스타일리쉬 트렌치 코트p> li> li> a href="#"> img src="images/main-banner-1.jpg" /> a> p className="title"> span>NEW CUSTOMERSspan> p> p className="summary">신규회원 5% 할인 쿠폰 발급!p> li> li> a href="#"> img src="images/main-banner-2.jpg" /> a> p className="title"> span>MEMBER LEVELspan> p> p className="summary">빈티지톡 회원등급 안내p> li> li> a href="#"> img src="images/main-banner-3.jpg" /> a> p className="title"> span>CONSIGNMENT SALESspan> p> p className="summary">위탁판매 안내p> li> ul> div> SectionTwo> SectionThree> div className="container" ref={refSlide3}> div> h2>PRODUCTh2> p className="bar" /> p className="ment">단 한장밖에 없는 당신만의 옷들입니다 :)p> div> a href="#" onClick={onClick}> 상품올리기 a> ProductStyle column="5"> Product productType="all" /> ProductStyle> div> SectionThree> ); }; export default MainSection;
- 0
- 2
- 173
질문&답변
formdata
해결했습니다!제가 치명적인 실수를 했네요 저와 같은 실수를 하시는분들을 위하여 올릴게요 formData안에 내용물들이 궁금하여 console로 출력 하는 경우에는 빈객체{}가 나옵니다. 이유는, FormData는 XMLHttpRequest를 사용해 전송할 key/value와 같이 쌍을 이뤄 컴파일한 "특수한 객체"이기 때문에, 문자열로 표현할 수 없어서 빈 객체가 나옵니다. 반드시 내용물을 찍어볼 때 "for ...of "를 통하여 내부를 확인하시길 바랍니다!
- 0
- 1
- 433
질문&답변
저 역시 ECONNREFUSED 에러가 생깁니다.
미쳤다 저도 이거떄문에 몇시간 날렸네요.
- 1
- 18
- 24K
질문&답변
오류
감사합니다 늦은 시간에 빠른 답변주셔서 잘 해결하였습니다 !!!!
- 0
- 4
- 5.9K