中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

利用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)站
钟祥市| 东城区| 余江县| 克拉玛依市| 沙田区| 清丰县| 烟台市| 大姚县| 宝山区| 金华市| 宁安市| 齐齐哈尔市| 盈江县| 苏尼特右旗| 盐边县| 吐鲁番市| 三都| 南通市| 孝昌县| 博罗县| 六枝特区| 德江县| 元江| 丽水市| 论坛| 鱼台县| 宁波市| 郧西县| 高碑店市| 潮安县| 枣强县| 昔阳县| 巩义市| 上林县| 吉安市| 开平市| 皮山县| 泰安市| 东明县| 红安县| 宝清县|