内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

利用webpack和rollup怎么對(duì)組件庫(kù)進(jìn)行打包-創(chuàng)新互聯(lián)

本篇文章為大家展示了利用webpack和rollup怎么對(duì)組件庫(kù)進(jìn)行打包,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

在元寶山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,元寶山網(wǎng)站建設(shè)費(fèi)用合理。

webpack和rollup對(duì)比

webpack算是使用程序員使用最多的打包工具,面試中往往會(huì)問(wèn)到webpack的相關(guān)問(wèn)題,而rollup被問(wèn)到的要少很多。導(dǎo)致這種現(xiàn)象的一個(gè)原因是,應(yīng)用開(kāi)發(fā)使用webpack,庫(kù)開(kāi)發(fā)使用rollup的說(shuō)法。

但是兩個(gè)打包工具都有很強(qiáng)大的插件開(kāi)發(fā)功能,功能差異越來(lái)越模糊,但是rollup使用起來(lái)更加簡(jiǎn)潔,而且能打出能小體積的文件。但當(dāng)我們做前端應(yīng)用時(shí),性能分析往往要求更小的庫(kù),所以rollup更符合開(kāi)發(fā)庫(kù)的要求。

這次算是一個(gè)打包的實(shí)驗(yàn),我們使用兩個(gè)工具都對(duì)這個(gè)項(xiàng)目打一次包。

使用webpack打包

在打包之前,需要給package.json文件中添加或更改一些字段。

{
 // 程序主入口模塊,用戶引用的就是該模塊的導(dǎo)出
 "main": "dist/bundle.js",
 // 項(xiàng)目包含的文件
 "files": [
  "src",
  "dist"
 ],
 // 將react和react-dom移動(dòng)到該配置中,兼容依賴(lài)
 "peerDependencies": {
  "react": "^17.0.1",
  "react-dom": "^17.0.1"
 },
}

webpack打包需要用到很多庫(kù)來(lái)處理不同的文件,這個(gè)項(xiàng)目比較小,就只用了兩個(gè)庫(kù)。

// webpack.config.js
const path = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
 mode: 'production',
 entry: './src/Loading.jsx',
 output: {
  filename: "index.js",
  path: path.join(__dirname, "./dist/"),
  libraryTarget: 'umd',
 },
 optimization: {
  minimize: false,
 },
 resolve: {
  extensions: ['.jsx']
 },
 module: {
  rules: [
   {
    test: /\.css$/,
    loader: [MiniCssExtractPlugin.loader, 'css-loader?modules'],
   },
   {
    test: /\.(js|jsx)$/,
    loader: "babel-loader",
    exclude: /node_modules/,
   },
  ]
 },
 plugins: [
  new MiniCssExtractPlugin({
   filename: "main.min.css" // 提取后的css的文件名
  })
 ],
}

本來(lái)應(yīng)該寫(xiě)開(kāi)發(fā)和生產(chǎn)兩個(gè)環(huán)境下的配置,但在這里只寫(xiě)了production環(huán)境下的配置。

使用rollup打包

在rollup中使用的庫(kù)比較多一點(diǎn)。

// rollup.config.js
// 解決rollup無(wú)法識(shí)別commonjs的問(wèn)題
import commonjs from 'rollup-plugin-commonjs'
// babel處理es6代碼的轉(zhuǎn)換
import babel from 'rollup-plugin-babel'
// resolve將我們編寫(xiě)的源碼與依賴(lài)的第三方庫(kù)進(jìn)行合并
import resolve from 'rollup-plugin-node-resolve'
// postcss處理css文件
import postcss from 'rollup-plugin-postcss'

export default {
 input: "src/Loading.jsx",
 // 打包一份cjs和一份es的文件
 output: [
  {
   file: "dist/loading.es.js",
   format: "es",
   globals: {
    react: 'React',
   },
  }, {
   file: 'dist/loading.cjs',
   format: "cjs",
   globals: {
    react: 'React',
   },
  },
 ],
 external: ['react'],
 plugins: [
  postcss(
   { extensions: ['.css'] }
  ),
  babel({
   exclude: "node_modules/**",
   runtimeHelpers: true,
  }),
  commonjs(),
  resolve(),
 ],
}

發(fā)包到npm

發(fā)包到npm只需要幾個(gè)命令。

npm pack

對(duì)項(xiàng)目打包后,命令行輸出壓縮包的詳細(xì)信息。

利用webpack和rollup怎么對(duì)組件庫(kù)進(jìn)行打包

更新版本

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]

根據(jù)本次改動(dòng)的大小選擇不同的命令。

最后使用發(fā)布命令。

npm publish

上述內(nèi)容就是利用webpack和rollup怎么對(duì)組件庫(kù)進(jìn)行打包,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱(chēng)欄目:利用webpack和rollup怎么對(duì)組件庫(kù)進(jìn)行打包-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.rwnh.cn/article24/jcdce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、網(wǎng)站維護(hù)、電子商務(wù)、網(wǎng)站設(shè)計(jì)公司用戶體驗(yàn)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
南溪县| 峨边| 涿州市| 连江县| 松江区| 临汾市| 霍林郭勒市| 大同县| 上虞市| 石阡县| 龙门县| 拉孜县| 长丰县| 永城市| 井研县| 抚州市| 东乌珠穆沁旗| 邵阳县| 拜城县| 霍州市| 东乡族自治县| 沐川县| 北宁市| 陇川县| 新干县| 来凤县| 中山市| 九江县| 塔城市| 安陆市| 鲁甸县| 汉川市| 瑞昌市| 建湖县| 临桂县| 静乐县| 凌源市| 望都县| 昭苏县| 海晏县| 黄平县|