Mi Lugarcito
React & nest.js - slecks 채팅 만들기 / setting 본문
cd back
sudo npm i
back 폴더 안에!!!! .env 파일 만들기
COOKIE_SECRET=sleactcookie
MYSQL_PASSWORD=1234
콘솔창에 입력후 디비 만들기
npx sequelize db:create
npm run dev // 테이블 생성을 위해
ctrl+c
DB 연결 성공이라고 제일 아래와 같이 뜬다
그리고 나서 ctrl+c해서 빠져나오기
npx sequelize db:seed:all // 이미 디비값을 임의로 만들어 둔걸 실행시키기
npm run dev // 실제 데이터 넣는것
git에 올릴때는 node_modules 폴더는 제외시켜야한다.
용량도 너무 많고 무거워 & package.json 파일만 있으면 npm i 할 시 자동생성되는 폴더이기 때문
npm i -D eslint // 코드 검사 도구
npm i -D prettier eslint-plugin-prettier eslint-config-prettier //코드 자동 정렬
.prettierc
{
"printWidth" : 120,
"tabWidth" : 2.
"singleQuote" : true,
"trailingComma" : "all",
"semi" : true
}
.eslintrc
{
"extends" : ["plugin:prettier/recommended"]
}
.tsconfig.json
{
"compilerOptions": {
"esModuleInterop": true,
"sourceMap": true,
"lib": ["ES2020", "DOM"],
"jsx": "react",
"module": "esnext",
"moduleResolution": "Node",
"target": "es5",
"strict": true, // important
"resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"@hooks/*": ["hooks/*"],
"@components/*": ["components/*"],
"@layouts/*": ["layouts/*"],
"@pages/*": ["pages/*"],
"@utils/*": ["utils/*"],
"@typings/*": ["typings/*"]
}
}
}
.webpack.config
import path from 'path';
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
import webpack from 'webpack';
import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
const isDevelopment = process.env.NODE_ENV !== 'production';
const config: webpack.Configuration = {
name: 'sleact',
mode: isDevelopment ? 'development' : 'production',
devtool: !isDevelopment ? 'hidden-source-map' : 'eval',
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx', '.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'),
'@typings': path.resolve(__dirname, 'typings'),
},
},
entry: {
app: './client',
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
targets: { browsers: ['last 2 chrome versions'] },
debug: isDevelopment,
},
],
'@babel/preset-react',
'@babel/preset-typescript',
],
env: {
development: {
plugins: [['@emotion', { sourceMap: true }], require.resolve('react-refresh/babel')],
},
production: {
plugins: ['@emotion'],
},
},
},
exclude: path.join(__dirname, 'node_modules'),
},
{
test: /\.css?$/,
use: ['style-loader', 'css-loader'],
},
],
},
plugins: [
new ForkTsCheckerWebpackPlugin({
async: false,
// eslint: {
// files: "./src/**/*",
// },
}),
new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' }),
],
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].js',
publicPath: '/dist/',
},
devServer: {
historyApiFallback: true, // react router
port: 3090,
publicPath: '/dist/',
proxy: {
'/api/': {
target: 'http://localhost:3095',
changeOrigin: true,
},
},
},
};
if (isDevelopment && config.plugins) {
config.plugins.push(new webpack.HotModuleReplacementPlugin());
config.plugins.push(new ReactRefreshWebpackPlugin());
config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: 'server', openAnalyzer: true }));
}
if (!isDevelopment && config.plugins) {
config.plugins.push(new webpack.LoaderOptionsPlugin({ minimize: true }));
config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: 'static' }));
}
export default config;
'React & Next.js' 카테고리의 다른 글
React with TypeScript - Slacks // setting (react, babel, webpack 설정편) (0) | 2021.04.12 |
---|---|
React - Setting & Movie App 만들기 완료 (0) | 2021.04.11 |
React - 기초용어 정리 (0) | 2021.03.29 |
React - 이벤트 처리 (0) | 2021.03.29 |
React - LifeCycle 과 API 호출하기 (0) | 2021.03.29 |