ปลั๊กอินอึกสำหรับการหมุน
อีกหนึ่งปลั๊กอิน Gulp-Rollup ที่อนุญาตให้อินพุต/เอาต์พุตหลายไฟล์สำหรับไซต์คงที่
NPM
npm i gulp-rollup-each
const gulp = require ( 'gulp' )
const rollupEach = require ( 'gulp-rollup-each' )
function scripts ( ) {
return gulp
. src ( [
'src/**/*.js' ,
'!src/**/_*' // exclude modules
] )
. pipe (
rollupEach ( {
output : {
// outputOptions
format : 'iife'
}
} )
)
. pipe ( gulp . dest ( 'dist' ) )
}
ด้วย sourcemaps และ buble
const gulp = require ( 'gulp' )
const sourcemaps = require ( 'gulp-sourcemaps' )
const rollupEach = require ( 'gulp-rollup-each' )
const buble = require ( '@rollup/plugin-buble' )
function scripts ( ) {
return gulp
. src ( [
'src/**/*.js' ,
'!src/**/_*' // exclude modules
] )
. pipe ( sourcemaps . init ( ) )
. pipe (
rollupEach (
{
// inputOptions
external : [ 'jquery' ] ,
plugins : [
buble ( {
target : {
ie : 11
}
} )
] ,
isCache : true // enable Rollup cache
} ,
{
// outputOptions
format : 'iife' ,
globals : {
jquery : 'jQuery'
}
}
)
)
. pipe ( sourcemaps . write ( ) )
. pipe ( gulp . dest ( 'dist' ) )
}
rollupEach(inputOptions [[, outputOptions], rollup])
inputOptions
อาร์กิวเมนต์ที่ 1 เป็นวัตถุเดียวกับ inputOptions
อย่างไรก็ตาม ตัวเลือก input
คือไฟล์ที่ระบุใน gulp.src()
ดังนั้นจึงไม่สามารถระบุได้ว่าเป็นตัวเลือก Gulp-Rollup-Eish
หากคุณต้องการเปิดใช้ cache
โรลอัพให้ตั้งค่าตัวเลือก isCache
เป็น true
function scripts ( ) {
return gulp
. src ( [ 'src/**/*.js' ] )
. pipe (
rollupEach (
{
isCache : true // enable Rollup cache
} ,
{
format : 'iife'
}
)
)
. pipe ( gulp . dest ( 'dist' ) )
}
outputOptions
อาร์กิวเมนต์ที่ 2 เป็นวัตถุเดียวกับ outputOptions
หากคุณละเว้นอาร์กิวเมนต์ที่ 2 output
ในอาร์กิวเมนต์ที่ 1 จะเปลี่ยนเป็น outputOptions
function scripts ( ) {
return gulp
. src ( [ 'src/**/*.js' ] )
. pipe (
rollupEach ( {
output : {
// outputOptions
format : 'iife'
}
} )
)
. pipe ( gulp . dest ( 'dist' ) )
}
นอกจากนี้คุณยังสามารถผ่านฟังก์ชั่นที่ส่งคืนวัตถุตัวเลือกการหมุนเป็นอาร์กิวเมนต์ ฟังก์ชั่นจะได้รับวัตถุไวนิลไฟล์
const path = require ( 'path' )
const gulp = require ( 'gulp' )
const rollupEach = require ( 'gulp-rollup-each' )
function scripts ( ) {
return gulp
. src ( [ 'src/**/*.js' ] )
. pipe (
rollupEach (
{
external : [ /* ... */ ] ,
plugins : [ /* ... */ ]
} ,
file => {
return {
format : 'umd' ,
name : path . basename ( file . path , '.js' )
}
}
)
)
. pipe ( gulp . dest ( 'dist' ) )
}
rollup
คุณสามารถระบุอาร์กิวเมนต์ที่ 3 สำหรับการแทนที่วัตถุ rollup
โดยการพึ่งพาของคุณ มันมีประโยชน์หากคุณต้องการใช้ Rollup เวอร์ชันใหม่กว่า Gulp-Rollup-Eeach ที่ใช้อยู่
function scripts ( ) {
return gulp
. src ( [ 'src/**/*.js' ] )
. pipe (
rollupEach (
{ } ,
{
format : 'iife'
} ,
// Passing rollup object
require ( 'rollup' )
)
)
. pipe ( gulp . dest ( 'dist' ) )
}
มิกซ์