در این پست به چگونگی ساخت پروژه reactjs بدون ابزارهایی مانند "create-react-app" پرداخته میشود.
ابتدا یک فولدر با نام دلخواه ایجاد میکنیم، سپس وارد این فولدر میشویم و ترمینال را درون این پوشه بازکرده سپس با کمک دستور زیر فایل package.json مربوط به npm را ایجاد میکنیم:
npm init
ابزار typescript کمک میکند در هنگام توسعه به تمییزتر شدن کدها کمک میکند:
npm i --save-dev typescript @types/node
سپس فایل tsconfig.ts را ایجاد میکنیم:
{ "compilerOptions": { "esModuleInterop": true, "jsx": "react", "module": "esnext", "moduleResolution": "node", "lib": [ "dom", "esnext" ], "strict": true, "sourceMap": true, "target": "esnext", }, "exclude": [ "node_modules" ] }
ابزار webpack را برای ایجاد build نهایی و یا ایجاد server هنگام توسعه نیاز داریم.
npm install --save-dev webpack webpack-cli webpack-dev-server css-loader html-webpack-plugin mini-css-extract-plugin
همچنین :
npm install --save-dev ts-loader
اکنون در روت پروژه یک فایل بنام webpack.config.js ایجاد میکنیم :
const prod = process.env.NODE_ENV === 'production'; const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { mode: prod ? 'production' : 'development', entry: './src/index.tsx', // index.ts/index.js path output: { path: __dirname + '/dist/', //build directory }, module: { rules: [ { test: /\.(ts|tsx)$/, exclude: /node_modules/, resolve: { extensions: ['.ts', '.tsx', '.js', '.json'], }, use: 'ts-loader', }, { test: /\.css$/, use: [MiniCssExtractPlugin.loader, 'css-loader'], }, ] }, devtool: prod ? undefined : 'source-map', plugins: [ new HtmlWebpackPlugin({ template: './public/index.html', //index.html path }), new MiniCssExtractPlugin(), ], };
مرورگرها قادر به درک ECMAScript نیستند. این ابزار کدهای ECMAScript را به کدهای جاوااسکریپت قابل درک برای مرورگرها تبدیل میکند:
npm install --save-dev babel-loader @babel/preset-env @babel/core @babel/plugin-transform-runtime @babel/preset-react @babel/eslint-parser @babel/runtime @babel/cli
ابزار eslint در هنگام توسعه به پیدا کردن مشکلات کد به توسعه دهنده کمک میکند:
npm install --save-dev eslint eslint-config-airbnb-base eslint-plugin-jest eslint-config-prettier
از این ابزار به جهت کار با مسیرها استفاده میکنیم:
npm install --save-dev path
کتابخانه react سرعت توسعه برنامههای جاوااسکریپتی را با کمک کدهای از پیش نوشته افزایش میدهد:
npm install react react-dom
همچنین :
npm install --save-dev @types/react @types/react-dom
درون فولدر پروژه یک فولدر بنام public کنار package.json ایجاد میکنیم و سپس درون این فولدر فایل index.html را قرار میدهیم:
دقت شود که ما یک تگ div درون فایل html با شناسه "my-app-root" هم ایجاد کردیم.
درون پوشه src فایل index.ts خود را اضافه میکنیم:
برای تست فایل ابتدا سراغ فایل package.json رفته و اسکریپت test و build را به این فایل اضافه میکنیم:
اسکریپتهای مربوط به test و start در ویندوز:
"start": "webpack serve --port 3000", "build": "set NODE_ENV=production && webpack"
درون لینوکس:
"start": "webpack serve --port 3000", "build": "NODE_ENV=production webpack"
سپس با دستور زیر میتوان اپ را روی پورت 3000 اجرا کرد:
npm start
برای گرفتن build کافیست دستور زیر را در ترمینال وارد میکنیم:
npm run build