欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 使用roolup構建你的lib(實現步驟)

使用roolup構建你的lib(實現步驟)

熱門標簽:寧夏保險智能外呼系統哪家好 臨滄移動外呼系統哪家有 交行外呼系統有哪些 怎么更改地圖標注電話 隨州銷售外呼系統平臺 激戰黃昏地圖標注說明 溫嶺代理外呼系統 防城港市ai電銷機器人 不同的地圖標注

概述

Rollup, 和 Webpack, Parcel 都是模塊打包工具(module bundler tool), 但是側重點不同, 我們要聊的 Rollup更加適合用于構建lib 而 Webpack, Precel 更加適合開發應用。本文,將結合一個簡單的例子說說如何使用Rollup構建自己的lib。

實現目標

  1. 創建一個完整的rollup的lib工程;
  2. 區分開發和生產配置,方便開發測試;
  3. 引入第三方庫(如:ol),并實現第三方庫的打包;

實現步驟

一 rollup基礎

1. 初始化工程

cnpm init -y

2. 安裝依賴

cnpm install rollup --save-dev

3. 新建測試代碼src/main.js

const add = (a, b) => a + b;

const res = add(100 + 100)
console.log(res)

4. 編譯測試package.json

// script節點下添加
"dev": "rollup -i src/main.js -o dist/bundle.js -f es"

// 執行編譯命令
npm run dev

在這段指令中:

  • -i指定要打包的文件,-i--input的縮寫。
  • src/index.js-i的參數,即打包入口文件。
  • -o指定輸出的文件,是--output.file--file的縮寫。(如果沒有這個參數,則直接輸出到控制臺)dist/bundle.js-o的參數,即輸出文件。
  • -f指定打包文件的格式,-f--format的縮寫。
  • es-f的參數,表示打包文件使用ES6模塊規范。

rollup支持的打包文件的格式有amd, cjs, es\esm, iife, umd。其中,amd為AMD標準,cjs為CommonJS標準,esm\es為ES模塊標準,iife為立即調用函數, umd同時支持amd、cjs和iife。

5. 配置文件

在根目錄下創建config/rollup.dev.config.jsconfig/rollup.prod.config.js

export default {
  input: "./src/index.js",
  output: [
    {
      file: './dist/my-lib-umd.js',
      format: 'umd',
      name: 'myLib'   
      //當入口文件有export時,'umd'格式必須指定name
      //這樣,在通過script>標簽引入時,才能通過name訪問到export的內容。
    },
    {
      file: './dist/my-lib-es.js',
      format: 'es'
    },
    {
      file: './dist/my-lib-cjs.js',
      format: 'cjs'
    }
  ]
}

修改配置文件package.json

// script節點下修改
"dev": "rollup -c config/rollup.dev.config.js",
"prod": "rollup -c config/rollup.prod.config.js"
// 執行編譯命令
npm run dev
npm run prod

二 rollup插件

1. rollup-plugin-babel

// 1.安裝依賴
cnpm i rollup-plugin-babel @babel/core @babel/preset-env --D

// 2.修改文件`config/rollup.prod.config.js`
import babel from 'rollup-plugin-babel'

plugins:[
  babel({
      exclude: 'node_modules/**'
  })
]

// 3.在根目錄下創建文件`.babelrc`
{
  "presets": [
      [
        "@babel/preset-env"
      ]
    ]
}

// 4.執行編譯命令
npm run prod

2. rollup-plugin-commonjs

rollup默認是不支持CommonJS模塊的,自己寫的時候可以盡量避免使用CommonJS模塊的語法,但有些外部庫的是cjs或者umd(由webpack打包的),所以使用這些外部庫就需要支持CommonJS模塊。

// 1、添加依賴
cnpm install @rollup/plugin-node-resolve @rollup/plugin-commonjs -D


// 2.修改文件`config/rollup.prod.config.js`
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'

plugins:[
  resolve(),
  commonjs(),
]

// 5.執行編譯命令
npm run prod

3. rollup-plugin-postcss

// 1.安裝依賴
cnpm i postcss rollup-plugin-postcss autoprefixer@8.0.0 postcss --D

// 2.修改文件`config/rollup.config.prod.js`
import postcss from 'rollup-plugin-postcss'
import autoprefixer from 'autoprefixer'

plugins:[
  postcss({
    // 把 css 插入到 style 中
    // inject: true,
    // 把 css 放到和js同一目錄
    extract: true,
    plugins: [
      autoprefixer()
    ]
  })
]

// 3.創建測試文件`css/main.css`
html, body, #map {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    overflow: hidden;
}

// 4.引入文件`main.js`
import 'css/main.css'

三 開發配置

1.rollup-plugin-serve

// 1. 安裝依賴
cnpm install rollup-plugin-serve rollup-plugin-livereload -D

// 2. 修改配置文件`config/rollup.config.prod.js`
import serve from 'rollup-plugin-serve'
import livereload from 'rollup-plugin-livereload'

serve({
  contentBase: '', // 服務器啟動的文件夾,默認是項目根目錄,需要在該文件下創建ind
  port: 8800 // 端口號,默認10001
}),
livereload('dist') // watch dist目錄,當目錄中的文件發生變化時,刷新頁面

// 3. 修改啟動文件`package.json`
"build:dev": "rollup -wc build/rollup.config.js --environment NODE_ENV:development"

// 4.添加測試文件 `index.html`
!DOCTYPE html>
html lang="en">
head>
  meta charset="UTF-8">
  title>Title/title>
  link rel="stylesheet" href="dist/easymap.min.css" rel="external nofollow" >
/head>
body>
div id="map">/div>
script src="dist/easymap.min.js">/script>
script>
  var map = new EasyMap()
  console.log(map)
/script>
/body>
/html>

// 5. 啟動
npm run dev

2.eslint

// 1.安裝依賴
cnpm i eslint eslint-config-mourner rollup-plugin-eslint eslint-config-standard eslint-plugin-import eslint-plugin-node eslint-plugin-promise eslint-plugin-standard -D

// 2.根目錄下添加.eslintrc.js文件
module.exports = {
  extends: 'standard',
  // 添加了運行環境設定,設置 browser 為 true
  env: {
    browser: true
  }
}

// 3.修改配置文件`config/rollup.config.prod.js`
import eslint from 'rollup-plugin-eslint';

eslint(),

// 4.添加.eslintignore
dist
src/css

4.rollup-plugin-uglify

// 1.安裝依賴
cnpm i rollup-plugin-uglify -D

// 2. 修改配置
import { uglify } from 'rollup-plugin-uglify'

// js 壓縮插件,需要在最后引入
uglify()

示例代碼

到此這篇關于使用roolup構建你的lib的文章就介紹到這了,更多相關roolup構建lib內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • vue-cli擴展多模塊打包的示例代碼
  • php調用nginx的mod_zip模塊打包ZIP文件
  • perl 模塊打包加入外部依賴程序

標簽:沈陽 青海 忻州 哈密 河源 無錫 紅河 阜陽

巨人網絡通訊聲明:本文標題《使用roolup構建你的lib(實現步驟)》,本文關鍵詞  使用,roolup,構建,你的,lib,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用roolup構建你的lib(實現步驟)》相關的同類信息!
  • 本頁收集關于使用roolup構建你的lib(實現步驟)的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美在线视频日韩| 一区二区不卡在线播放| 蜜桃精品视频在线观看| 大尺度做爰床戏呻吟舒畅| 精品视频一区 二区 三区| 国产精品国产成人国产三级| 国产精品一区一区| 人妻熟人中文字幕一区二区| 日韩美女天天操| 青青草视频一区| 国产毛片毛片毛片毛片毛片毛片| 欧美老肥妇做.爰bbww视频| 一二三区精品福利视频| 中文字幕 欧美 日韩| 欧美性xxxxx极品少妇| 亚洲精品国产无天堂网2021| 四川一级毛毛片| 欧美视频一区二| 亚洲大片免费看| 国产精品成人无码专区| 日韩久久精品一区| 精品亚洲国产成人av制服丝袜| 亚洲人成人无码网www国产 | 国产精品欧美一级免费| 国产精品一区在线观看乱码| 国产又粗又硬又长又爽| 中文字幕+乱码+中文字幕一区| 国产v综合v亚洲欧| 色综合色综合色综合| 一区二区三区免费网站| av天堂一区二区| 欧美成人a视频| 国产一区 二区| 成人在线观看高清| 亚洲精品高清视频在线观看| 亚洲女则毛耸耸bbw| 日韩视频国产视频| 国产精品一色哟哟哟| 91黄色免费网站| 亚洲v日本v欧美v久久精品| 国产三级视频网站| 国产欧美一区二区三区网站| 不卡的av网站| 欧美精品日韩一本| 精品一区二区三区的国产在线播放| 国产wwwwxxxx| 有坂深雪av一区二区精品| 亚洲天堂2024| 国产日韩欧美高清| 宇都宫紫苑在线播放| 日韩精品一区二区三区在线播放| 国产一区二区在线观看视频| 色狠狠色噜噜噜综合网| 亚洲成人av中文| 欧美激情久久久久久久| 亚洲色图清纯唯美| 野花社区视频在线观看| 中文一区在线播放| 年下总裁被打光屁股sp| 久久免费的精品国产v∧| gogogo免费视频观看亚洲一| 91精品国产色综合久久不卡电影| 国产在线视视频有精品| 欧美在线观看视频在线| 久久草av在线| 欧美性色黄大片| 黑人巨大精品欧美一区| 欧洲精品视频在线观看| 久久99热这里只有精品| 欧美在线不卡视频| 激情欧美一区二区| 欧美视频第二页| 国产麻豆视频一区二区| 欧美日韩精品一区视频| 久久精品国产一区二区三区免费看 | 天堂www中文在线资源| 国产片一区二区三区| 伊人久久一区二区三区| 中文字幕精品一区二区精品绿巨人| 色悠悠在线视频| 中文字幕人成不卡一区| 国产成人无码精品久久二区三| 夜夜嗨av一区二区三区四季av| 精品一区二区三区蜜桃在线| 亚洲一区二区在线免费观看视频| 91视频免费看片| 丝袜美腿亚洲一区二区图片| 成人免费毛片东京热| 久久精品国产免费| 欧美日韩精品电影| 成人av网站免费| 久久久久久久免费视频了| 99久久久无码国产精品性波多| 国产精品欧美久久久久一区二区| 性欧美13一14内谢| 亚洲成精国产精品女| 色诱视频网站一区| 国产在线麻豆精品观看| 4438x亚洲最大成人网| jizzjizzjizz欧美| 国产精品乱码妇女bbbb| 欧美福利第一页| 青青国产91久久久久久| 欧美色国产精品| av网站一区二区三区| 欧美国产日韩在线观看| 少妇无套高潮一二三区| 日本v片在线高清不卡在线观看| 欧美色图一区二区三区| 成人av在线资源| 欧美国产国产综合| 人成免费在线视频| 久久97超碰国产精品超碰| 91精品国产麻豆国产自产在线| 国模大尺度视频| 亚洲靠逼com| 色婷婷精品久久二区二区蜜臂av| 国产精品1024| 国产欧美日韩另类一区| 无码人妻丰满熟妇啪啪欧美| 免费成人av在线| 欧美成人r级一区二区三区| 亚洲欧美在线不卡| 天堂一区二区在线免费观看| 欧美精品第1页| 中国黄色片视频| 午夜国产精品影院在线观看| 制服丝袜成人动漫| 精品国产人妻一区二区三区| 天堂久久一区二区三区| 51精品视频一区二区三区| 免费黄色三级网站| 日韩二区三区四区| 日韩你懂的电影在线观看| 午夜时刻免费入口| 国产综合久久久久影院| 国产亚洲午夜高清国产拍精品| 国产精品18在线| 国产成人免费视| 亚洲欧洲av在线| 在线国产亚洲欧美| 韩国av中国字幕| 天堂一区二区在线| 精品动漫一区二区三区在线观看| 国产jjizz一区二区三区视频| 国产乱码精品1区2区3区| 中文字幕成人av| 色94色欧美sute亚洲线路一久| 日本黄色www| 日韩精品一级中文字幕精品视频免费观看 | 国产福利在线导航| 高清国产一区二区| 亚洲欧美日韩国产另类专区| 欧美日韩一区中文字幕| 插我舔内射18免费视频| 精品一区二区综合| 国产精品网站在线观看| 在线影院国内精品| www.日本高清| 激情文学综合插| 国产精品国产馆在线真实露脸| 91福利视频网站| 艳妇乳肉亭妇荡乳av| 精品亚洲免费视频| 亚洲人吸女人奶水| 91精品国产入口在线| www.日本高清视频| 91麻豆精东视频| 日本亚洲欧美天堂免费| 国产日产欧美一区二区视频| 日本乱人伦一区| 添女人荫蒂视频| 国产成人av影院| 亚洲成人av中文| 国产欧美va欧美不卡在线| 欧美影视一区二区三区| 男女黄床上色视频| kk眼镜猥琐国模调教系列一区二区| 亚洲bdsm女犯bdsm网站| 久久久国产精品不卡| 欧美丝袜自拍制服另类| 亚洲做受高潮无遮挡| 成人禁用看黄a在线| 天天综合色天天综合色h| 欧美韩国日本一区| 欧美美女bb生活片| 天天操夜夜操av| 亚洲第九十七页| a美女胸又www黄视频久久| 日韩国产一区二| 亚洲图片欧美激情| 欧美成人精精品一区二区频| 一本久久a久久精品亚洲| 给我看免费高清在线观看| 处破女av一区二区| 免费在线观看一区| 亚洲精品国产无天堂网2021| 国产性色一区二区| 91精品国产日韩91久久久久久| 欧美风情第一页|