Konfigurasi rollup untuk membantu Anda membangun aplikasi web modern.
Konfigurasi bekerja sangat baik dengan perpustakaan lit-html dan elemen lit. Saya ingin membagikannya sehingga Anda dapat menggunakannya juga atau membangun di atasnya.
create-rollup-config.js yang dapat diperluas untuk menggunakan rollup dengan fitur-fitur manis seperti misalnya impor SCSS, pembuatan pekerja layanan dengan WorkBox, Reloading Langsung, Sumber Daya Koping, Chunking, Treeshaking, TypeScript, Minifying Produksi dan Kompresi dengan Brotli dan Gzip.create-karma-config.js yang dapat diperluas untuk membantu pengaturan pengujian karma Andatsconfig.json untuk mengonfigurasi naskah Andatslint.json untuk mengonfigurasi serat Andatypings.d.ts untuk mengonfigurasi pengetikan Anda.browserslistrc untuk mengonfigurasi bagaimana file Anda ditranspilasi.gitignore yang dapat Anda gunakan sebagai inspirasi untuk file .gitignore Anda sendirirollup-plugin-compress -plugin rollup yang mengompres file dalam bundel setelah membangunrollup-plugin-copy -plugin rollup yang menyalin sumber daya dari satu lokasi ke lokasi lainrollup-plugin-html-template -plugin rollup yang menyuntikkan titik masuk bundel ke dalam file htmlrollup-plugin-import-styles -plugin rollup yang memungkinkan untuk mengimpor file gaya menggunakan postcssrollup-plugin-live-reload -plugin rollup yang langsung memuat ulang file saat mereka berubahrollup-plugin-minify-lit-html -plugin rollup yang meminimalkan template lit-html litrollup-plugin-replace -plugin rollup yang menggantikan impor dengan impor lainrollup-plugin-workbox -plugin rollup yang menggunakan WorkBox untuk menghasilkan pekerja layananrollup-plugin-budget -Plugin rollup yang membandingkan ukuran file dengan anggaran yang ditentukanrollup-plugin-clean -Plugin rollup yang dibersihkan sebelum membangun kembali rollup.config.ts.eslintrc.jsontsconfig.json.browserslistrckarma.conf.jspackage.jsonprettier.config.jstypings.d.ts Anda!Cara tercepat untuk memulai adalah dengan menggunakan CLI. Jalankan perintah berikut untuk mengatur proyek Anda dari awal. Jika Anda memilih untuk menggunakan CLI, Anda dapat melewatkan sisa langkah dalam file readme ini.
$ npm init web - config new < dir >Untuk menggunakannya di proyek Anda, Anda dapat menginstalnya seperti ini.
$ npm i @ appnest / web - config -- D rollup.config.tsBerikut adalah contoh seperti apa file konfigurasi rollup Anda bisa terlihat:
import { resolve , join } from "path" ;
import pkg from "./package.json" ;
import {
defaultExternals ,
defaultOutputConfig ,
defaultPlugins ,
defaultProdPlugins ,
defaultServePlugins ,
isLibrary ,
isProd ,
isServe
} from "@appnest/web-config" ;
const folders = {
dist : resolve ( __dirname , "dist" ) ,
src : resolve ( __dirname , "src/demo" ) ,
src_assets : resolve ( __dirname , "src/demo/assets" ) ,
dist_assets : resolve ( __dirname , "dist/assets" )
} ;
const files = {
main : join ( folders . src , "main.ts" ) ,
src_index : join ( folders . src , "index.html" ) ,
dist_index : join ( folders . dist , "index.html" )
} ;
export default {
input : {
main : files . main
} ,
output : [
defaultOutputConfig ( {
dir : folders . dist ,
format : "esm"
} )
] ,
plugins : [
... defaultPlugins ( {
copyConfig : {
resources : [ [ folders . src_assets , folders . dist_assets ] ] ,
} ,
cleanerConfig : {
targets : [
folders . dist
]
} ,
htmlTemplateConfig : {
template : files . src_index ,
target : files . dist_index ,
include : / main(-.*)?.js$ /
} ,
importStylesConfig : {
globals : [ "main.scss" ]
}
} ) ,
// Serve
... ( isServe ? [
... defaultServePlugins ( {
dist : folders . dist
} )
] : [ ] ) ,
// Production
... ( isProd ? [
... defaultProdPlugins ( {
dist : folders . dist
} )
] : [ ] )
] ,
treeshake : isProd ,
context : "window"
} .eslintrc.json {
"extends" : " ./node_modules/@appnest/web-config/eslint.js "
}tsconfig.json {
"extends" : " ./node_modules/@appnest/web-config/tsconfig.json "
}.browserslistrc Alat yang mentranspiling kode Anda menggunakan browserslist untuk mencari tahu apa yang didukung. .browserslistrc Anda bisa terlihat seperti ini.
last 2 Chrome versions
last 2 Safari versions
last 2 Firefox versions
karma.conf.js const { defaultResolvePlugins , defaultKarmaConfig } = require ( "@appnest/web-config" ) ;
module . exports = ( config ) => {
config . set ( {
... defaultKarmaConfig ( {
rollupPlugins : defaultResolvePlugins ( )
} ) ,
basePath : "src" ,
logLevel : config . LOG_INFO
} ) ;
} ; package.json Di sini contoh tentang skrip apa yang dapat Anda tambahkan ke file package.json Anda.
{
...
scripts: {
"b:dev": "rollup -c --environment NODE_ENV:dev",
"b:prod": "rollup -c --environment NODE_ENV:prod",
"s:dev": "rollup -c --watch --environment NODE_ENV:dev",
"s:prod": "rollup -c --watch --environment NODE_ENV:prod",
"s": "npm run s:dev"
...
}
...
}
prettier.config.js module . exports = {
... require ( "../node_modules/@appnest/web-config/rettier.config.js" )
} ; typings.d.ts Anda!Ini untuk membuat naskah tidak mengeluh tentang SCSS, CSS dan Impor JSON.
/// <reference path="node_modules/@appnest/web-config/typings.d.ts" />Langkah 1: Impor stylesheet Anda menggunakan Sintaks Impor ES6
import "./main.scss" ;Langkah 2: Sertakan nama stylesheet di konfigurasi rollup Anda
export default {
...
defaultPlugins ( {
...
importStylesConfig : {
globals : [ "main.scss" ]
} ,
...
} ) ,
...
} import css from "./my-component.scss" ; | Andreas Mehlsen | Anda? |
Berlisensi di bawah MIT.