بوټسټریپ او ویبپیک
د ویبپیک په کارولو سره ستاسو په پروژه کې د بوټسټریپ CSS او جاواسکریپټ شاملولو او بنډل کولو څرنګوالي لپاره رسمي لارښود.
چمتو کول
موږ له سکریچ څخه د بوټسټریپ سره د ویب پیک پروژه رامینځته کوو ، نو دلته ځینې شرایط شتون لري او مخکې له دې چې موږ واقعیا پیل وکړو. دا لارښود تاسو ته اړتیا لري چې Node.js نصب کړئ او د ټرمینل سره یو څه پیژندنه ولرئ.
-
د پروژې فولډر جوړ کړئ او npm تنظیم کړئ. موږ به
my-project
فولډر جوړ کړو او د استدلال سره npm پیل-y
کړو ترڅو له موږ څخه د ټولو متقابلو پوښتنو څخه مخنیوی وشي.mkdir my-project && cd my-project npm init -y
-
Webpack نصب کړئ. بیا موږ اړتیا لرو چې زموږ د ویبپیک پراختیا انحصارونه نصب کړو:
webpack
د ویبپیک اصلي لپاره،webpack-cli
نو موږ کولی شو د ټرمینل څخه د ویبپیک کمانډونه پرمخ یوسو، اوwebpack-dev-server
له دې امله موږ کولی شو د محلي پراختیا سرور پرمخ یوسو. موږ--save-dev
د سیګنال لپاره کاروو چې دا انحصار یوازې د پراختیا کارونې لپاره دي نه د تولید لپاره.npm i --save-dev webpack webpack-cli webpack-dev-server
-
بوټسټریپ نصب کړئ. اوس موږ کولی شو بوټسټریپ نصب کړو. موږ به پوپر هم نصب کړو ځکه چې زموږ ډراپ ډاونونه، پاپورونه، او اوزار ټیپونه د دوی موقعیت لپاره پدې پورې اړه لري. که تاسو د دې اجزاوو کارولو پلان نه لرئ، تاسو کولی شئ دلته پوپر پریږدئ.
npm i --save bootstrap @popperjs/core
-
اضافي انحصارونه نصب کړئ. د ویبپیک او بوټسټریپ سربیره، موږ یو څو نورو انحصارونو ته اړتیا لرو ترڅو د بوټسټریپ CSS او JS د Webpack سره په سمه توګه وارد او بنډل کړو. پدې کې Sass، ځینې لوډر، او Autoprefixer شامل دي.
npm i --save-dev autoprefixer css-loader postcss-loader sass sass-loader style-loader
اوس چې موږ ټول اړین انحصارونه نصب کړي ، موږ کولی شو د پروژې فایلونو رامینځته کولو او د بوټسټریپ واردولو کار ته ورسیږو.
د پروژې جوړښت
موږ لا دمخه my-project
فولډر جوړ کړی او npm یې پیل کړی دی. اوس به موږ خپل src
او dist
فولډرونه هم جوړ کړو ترڅو د پروژې جوړښت بشپړ کړو. د لاندې څخه چل کړئ my-project
، یا په لاسي ډول د فولډر او فایل جوړښت جوړ کړئ چې لاندې ښودل شوي.
mkdir {dist,src,src/js,src/scss}
touch dist/index.html src/js/main.js src/scss/styles.scss webpack.config.js
کله چې تاسو ترسره کوئ، ستاسو بشپړه پروژه باید داسې ښکاري:
my-project/
├── dist/
│ └── index.html
├── src/
│ ├── js/
│ │ └── main.js
│ └── scss/
│ └── styles.scss
├── package-lock.json
├── package.json
└── webpack.config.js
په دې وخت کې، هرڅه په سم ځای کې دي، مګر ویب پیک به کار ونکړي ځکه چې موږ webpack.config.js
تر اوسه خپل ډک نه دی کړی.
ویبپیک تنظیم کړئ
د انحصارونو نصبولو سره او زموږ د پروژې فولډر زموږ لپاره د کوډ کولو پیل کولو لپاره چمتو دی ، موږ اوس کولی شو ویبپیک تنظیم کړو او زموږ پروژه په ځایی ډول پرمخ یوسو.
-
webpack.config.js
په خپل مدیر کې خلاص کړئ. ځکه چې دا خالي دی، موږ به اړتیا ولرو چې یو څه د بویلر پلیټ تشکیلات اضافه کړو نو موږ کولی شو خپل سرور پیل کړو. د ترتیب دا برخه ویبپیک ته وایی چې زموږ د پروژې جاواسکریپټ په لټه کې و ، چیرې چې د کمپل شوي کوډ (dist
) ته تولید کړو ، او د پراختیا سرور باید څنګه چلند وکړي (دdist
ګرم ریلوډ سره د فولډر څخه ایستل).const path = require('path') module.exports = { entry: './src/js/main.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, devServer: { static: path.resolve(__dirname, 'dist'), port: 8080, hot: true } }
-
بیا موږ خپل ډک کړئ
dist/index.html
. دا د HTML پاڼه ده Webpack به په براوزر کې د بنډل شوي CSS او JS کارولو لپاره پورته شي چې موږ به یې په راتلونکو ګامونو کې اضافه کړو. مخکې لدې چې موږ دا وکړو ، موږ باید دا د وړاندې کولو لپاره یو څه ورکړو اوoutput
د تیر مرحلې څخه JS پکې شامل کړو.<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap w/ Webpack</title> </head> <body> <div class="container py-4 px-3 mx-auto"> <h1>Hello, Bootstrap and Webpack!</h1> <button class="btn btn-primary">Primary button</button> </div> <script src="./main.js"></script> </body> </html>
موږ دلته د بوټسټریپ سټایل لږ څه شامل کوو
div class="container"
او<button>
له همدې امله موږ وګورو کله چې د بوټسټریپ CSS د ویبپیک لخوا پورته کیږي. -
اوس موږ د ویبپیک چلولو لپاره د npm سکریپټ ته اړتیا لرو. لاندې ښودل شوی سکریپټ خلاص
package.json
کړئ او اضافهstart
کړئ (تاسو باید دمخه د ازموینې سکریپټ ولرئ). موږ به دا سکریپټ زموږ د محلي ویب پیک دیو سرور پیل کولو لپاره وکاروو.{ // ... "scripts": { "start": "webpack serve --mode development", "test": "echo \"Error: no test specified\" && exit 1" }, // ... }
-
او په نهایت کې ، موږ کولی شو ویبپیک پیل کړو. ستاسو په ټرمینل کې د
my-project
فولډر څخه، دا نوی اضافه شوی npm سکریپټ چل کړئ:npm start
د دې لارښود په راتلونکې او وروستۍ برخه کې، موږ به د ویب پیک لوډر تنظیم کړو او د بوټسټریپ ټول CSS او جاواسکریپټ وارد کړو.
بوټسټریپ وارد کړئ
په Webpack کې د بوټسټریپ واردول هغه لوډر ته اړتیا لري چې موږ په لومړۍ برخه کې نصب کړي. موږ دوی د npm سره نصب کړي، مګر اوس Webpack باید د دوی کارولو لپاره تنظیم شي.
-
لوډرونه په کې تنظیم کړئ
webpack.config.js
. ستاسو د ترتیب کولو فایل اوس بشپړ شوی او باید د لاندې ټوټې سره سمون ولري. دلته یوازې نوې برخه برخه دهmodule
.const path = require('path') module.exports = { entry: './src/js/main.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, devServer: { static: path.resolve(__dirname, 'dist'), port: 8080, hot: true }, module: { rules: [ { test: /\.(scss)$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'postcss-loader', options: { postcssOptions: { plugins: () => [ require('autoprefixer') ] } } }, { loader: 'sass-loader' } ] } ] } }
دلته یو تکرار دی چې ولې موږ دې ټولو لوډرانو ته اړتیا لرو. د HTML پاڼې په یو عنصر کې
style-loader
CSS داخلوي ، په کارولو کې مرسته کوي او د Autoprefixer لپاره اړین دی، او موږ ته اجازه راکوي چې د Sass کارولو لپاره.<style>
<head>
css-loader
@import
url()
postcss-loader
sass-loader
-
اوس ، راځئ چې د بوټسټریپ سی ایس ایس وارد کړو.
src/scss/styles.scss
د بوټسټریپ ټولې سرچینې ساس واردولو لپاره لاندې اضافه کړئ .// Import all of Bootstrap's CSS @import "~bootstrap/scss/bootstrap";
تاسو کولی شئ زموږ سټایل شیټونه په انفرادي ډول وارد کړئ که تاسو وغواړئ. د جزیاتو لپاره زموږ د Sass وارداتو اسناد ولولئ .
-
بیا موږ CSS پورته کوو او د بوټسټریپ جاوا سکریپټ واردوو. د CSS پورته کولو لپاره لاندې اضافه کړئ
src/js/main.js
او د بوټسټریپ ټول JS وارد کړئ. پوپر به د بوټسټریپ له لارې په اوتومات ډول وارد شي.// Import our custom CSS import '../scss/styles.scss' // Import all of Bootstrap's JS import * as bootstrap from 'bootstrap'
تاسو کولی شئ د جاواسکریپټ پلگ انونه په انفرادي ډول وارد کړئ لکه څنګه چې اړتیا وي د بنډل اندازې ټیټ ساتلو لپاره:
import Alert from 'bootstrap/js/dist/alert' // or, specify which plugins you need: import { Tooltip, Toast, Popover } from 'bootstrap'
د بوټسټریپ پلگ انونو کارولو څرنګوالي په اړه د نورو معلوماتو لپاره زموږ جاواسکریپټ سندونه ولولئ .
-
او تاسو بشپړ شوي! 🎉 د بوټسټریپ سرچینې ساس او JS په بشپړ ډول بار شوي سره ، ستاسو سیمه ایز پرمختیایی سرور باید اوس داسې ښکاري.
اوس تاسو کولی شئ د بوټسټریپ هرې برخې اضافه کول پیل کړئ چې تاسو یې کارول غواړئ. ډاډ ترلاسه کړئ چې د بشپړ ویبپیک مثال پروژه وګورئ چې څنګه اضافي دودیز ساس شامل کړئ او یوازې د بوټسټریپ CSS او JS برخې واردولو سره خپل جوړښت غوره کړئ چې تاسو ورته اړتیا لرئ.
د تولید اصلاح کول
ستاسو په ترتیب پورې اړه لري، تاسو ممکن غواړئ ځینې اضافي امنیت او سرعت اصلاحونه پلي کړئ چې په تولید کې د پروژې چلولو لپاره ګټور دي. په یاد ولرئ چې دا اصلاحات د ویب پیک مثال پروژې کې ندي پلي شوي او پلي کول یې تاسو پورې اړه لري.
د سی ایس ایس استخراج
هغه style-loader
څه چې موږ پورته ترتیب کړي په اسانۍ سره بنډل ته CSS جذبوي نو په لاسي ډول د CSS فایل پورته کول dist/index.html
اړین ندي. دا طریقه ممکن د محتوياتو د خوندیتوب سختې پالیسۍ سره کار ونکړي، په هرصورت، او دا ممکن ستاسو په غوښتنلیک کې د لوی بنډل اندازې له امله خنډ شي.
dist/index.html
د CSS جلا کولو لپاره چې موږ وکولی شو دا په مستقیم ډول له mini-css-extract-loader
.
لومړی، پلگ ان نصب کړئ:
npm install --save-dev mini-css-extract-plugin
بیا د ویبپیک ترتیب کې فلګ انسټیټ او وکاروئ:
--- a/webpack/webpack.config.js
+++ b/webpack/webpack.config.js
@@ -1,8 +1,10 @@
+const miniCssExtractPlugin = require('mini-css-extract-plugin')
const path = require('path')
module.exports = {
mode: 'development',
entry: './src/js/main.js',
+ plugins: [new miniCssExtractPlugin()],
output: {
filename: "main.js",
path: path.resolve(__dirname, "dist"),
@@ -18,8 +20,8 @@ module.exports = {
test: /\.(scss)$/,
use: [
{
- // Adds CSS to the DOM by injecting a `<style>` tag
- loader: 'style-loader'
+ // Extracts CSS for each JS file that includes CSS
+ loader: miniCssExtractPlugin.loader
},
{
د بیا چلولو npm run build
وروسته، یو نوی فایل به وي dist/main.css
، کوم چې به د سی ایس ایس لخوا وارد شوي ټول ولري src/js/main.js
. که تاسو dist/index.html
اوس په خپل براوزر کې وګورئ، سټایل به ورک شي، لکه څنګه چې دا اوس په کې دی dist/main.css
. تاسو کولی شئ تولید شوي CSS پدې کې شامل کړئ dist/index.html
:
--- a/webpack/dist/index.html
+++ b/webpack/dist/index.html
@@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="./main.css">
<title>Bootstrap w/ Webpack</title>
</head>
<body>
د SVG فایلونو استخراج
data:
د بوټسټراپ سی ایس ایس د انلاین URIs له لارې د SVG فایلونو ته ډیری حوالې شاملې دي . که تاسو د خپلې پروژې لپاره د مینځپانګې امنیت پالیسي تعریف کړئ چې data:
د عکسونو لپاره URIs بندوي ، نو دا SVG فایلونه به پورته نشي. تاسو کولی شئ د دې ستونزې په شاوخوا کې د ویبپیک د شتمنیو ماډلونو ځانګړتیا په کارولو سره د انلاین SVG فایلونو استخراج له لارې ترلاسه کړئ.
د دې په څیر د انلاین SVG فایلونو استخراج لپاره ویبپیک تنظیم کړئ:
--- a/webpack/webpack.config.js
+++ b/webpack/webpack.config.js
@@ -16,6 +16,14 @@ module.exports = {
},
module: {
rules: [
+ {
+ mimetype: 'image/svg+xml',
+ scheme: 'data',
+ type: 'asset/resource',
+ generator: {
+ filename: 'icons/[hash].svg'
+ }
+ },
{
test: /\.(scss)$/,
use: [
د بیا چلولو npm run build
وروسته، تاسو به د SVG فایلونه ومومئ چې استخراج شوي dist/icons
او په سمه توګه د CSS څخه حواله شوي.
دلته یو څه غلط یا زوړ وګورئ؟ مهرباني وکړئ په GitHub کې یوه مسله خلاص کړئ . د ستونزې حل کولو کې مرستې ته اړتیا لرئ؟ په GitHub کې بحث وپلټئ یا پیل کړئ .