আমি যখন এক্সপ্রেস দিয়ে শুরু করি তখন সর্বদা প্রয়োজন পরিবর্তে আমদানি করার সমাধান চাইত
const express = require("express");
// to
import express from "express"
অনেক সময় এই লাইনের মধ্য দিয়ে যায়: - Unfortunately, Node.js doesn't support ES6's import yet.
এখন অন্যকে সহায়তা করতে আমি এখানে দুটি নতুন সমাধান তৈরি করি
1) এসএমএস : -
উজ্জ্বলভাবে সহজ, বাবেল-কম, বান্ডিল-কম ECMAScript মডিউল লোডার। এর এটি কাজ করা যাক
yarn add esm / npm install esm
start.js তৈরি করুন বা আপনার নাম স্থানটি ব্যবহার করুন
require = require("esm")(module/*, options*/)
// Import the rest of our application.
module.exports = require('./src/server.js')
// where server.js is express server start file
আপনার package.josn
পাসের পথে পরিবর্তন করুনstart.js
"scripts": {
"start": "node start.js",
"start:dev": "nodemon start.js",
},
"dependencies": {
+ "esm": "^3.2.25",
},
"devDependencies": {
+ "nodemon": "^1.19.2"
}
2) বাবেল জেএস : -
এটি 2 ভাগে বিভক্ত করা যেতে পারে
a) সমাধান 1 টিমনওয়েব ডট কমকে ধন্যবাদ
খ) সমাধান 2
বাবেল 6 ব্যবহার করুন ( বাবেল -প্রিসেট-স্টেজ -3 older 6.0 এর পুরানো সংস্করণ ) .babelrc
আপনার মূল ফোল্ডারে ফাইল তৈরি করুন
{
"presets": ["env", "stage-3"]
}
ব্যাবেল-প্রসেট-পর্যায় -3 ইনস্টল করুন
yarn add babel-cli babel-polyfill babel-preset-env bable-preset-stage-3 nodemon --dev
Package.json এ পরিবর্তন করুন
"scripts": {
+ "start:dev": "nodemon --exec babel-node -- ./src/index.js",
+ "start": "npm run build && node ./build/index.js",
+ "build": "npm run clean && babel src -d build -s --source-maps --copy-files",
+ "clean": "rm -rf build && mkdir build"
},
"devDependencies": {
+ "babel-cli": "^6.26.0",
+ "babel-polyfill": "^6.26.0",
+ "babel-preset-env": "^1.7.0",
+ "babel-preset-stage-3": "^6.24.1",
+ "nodemon": "^1.19.4"
},
আপনার সার্ভার শুরু করুন
yarn start / npm start
ওহ না আমরা নতুন সমস্যা তৈরি করি
regeneratorRuntime.mark(function _callee(email, password) {
^
ReferenceError: regeneratorRuntime is not defined
এই ত্রুটিটি তখনই আসে যখন আপনি আপনার কোডটিতে async / অপেক্ষারত ব্যবহার করেন। তারপরে পলিফিল ব্যবহার করুন যার মধ্যে একটি কাস্টম পুনর্জেটর রানটাইম এবং কোর-জে রয়েছে। উপরে যোগ করুনindex.js
import "babel-polyfill"
এটি আপনাকে async / অপেক্ষারত ব্যবহার করতে দেয়
ব্যাবেল 7 ব্যবহার করুন
আপনার প্রকল্পের প্রতিটি জিনিস আপ টু ডেট করা দরকার ব্যাবেল 7 .babrc দ্বারা শুরু করা উচিত
{
"presets": ["@babel/preset-env"]
}
প্যাকেজ.জসনে কিছু পরিবর্তন
"scripts": {
+ "start:dev": "nodemon --exec babel-node -- ./src/index.js",
+ "start": "npm run build && node ./build/index.js",
+ "build": "npm run clean && babel src -d build -s --source-maps --copy-files",
+ "clean": "rm -rf build && mkdir build",
....
}
"devDependencies": {
+ "@babel/cli": "^7.0.0",
+ "@babel/core": "^7.6.4",
+ "@babel/node": "^7.0.0",
+ "@babel/polyfill": "^7.0.0",
+ "@babel/preset-env": "^7.0.0",
+ "nodemon": "^1.19.4"
....
}
এবং import "@babel/polyfill"
স্টার্ট পয়েন্টে ব্যবহার করুন
import "@babel/polyfill"
import express from 'express'
const app = express()
//GET request
app.get('/', async (req, res) {
// await operation
res.send('hello world')
})
app.listen(4000, () => console.log('🚀 Server listening on port 400!'))
ভাবছেন কেন start:dev
সিরিয়াসলি। আপনি যদি নতুন হন তবে এটি ভাল প্রশ্ন। প্রতিবার আপনি স্টার্ট সার্ভারের সাথে শুকিয়ে যাওয়াyarn start:dev
প্রতিটি পরিবর্তন তারপর ডেভলপমেন্ট সার্ভার হিসাবে ব্যবহার করুন প্রতিটি পরিবর্তন নোডেমনে আরও স্বয়ংক্রিয়ভাবে পুনরায় চালু করুন