Eine Rollup -Konfiguration, mit der Sie moderne Webanwendungen erstellen können.
Die Konfiguration funktioniert sehr gut mit den Bibliotheken Lit-HTML und Lit-Element. Ich wollte es teilen, damit Sie es auch verwenden oder darüber aufbauen können.
create-rollup-config.js für die Verwendung von Rollup mit süßen Funktionen wie SCSS-Importe, Servicearbeitergenerierung mit Workbox, Live-Nachladen, Bewältigungsressourcen, Chunking, Treeshaking, Typscript, Produktionsminiaturen und Kompression mit Brotli und GZIP.create-karma-config.js um bei Ihrem Karma-Test-Setup zu helfentsconfig.json -Datei zum Konfigurieren Ihres TypsScriptstslint.json -Datei zum Konfigurieren Ihrer Linietypings.d.ts Datei zum Konfigurieren Ihrer Typierungen.browserslistrc -Datei, um zu konfigurieren, wie Ihre Dateien transpiliert werden.gitignore -Datei, die Sie als Inspiration für Ihre eigene .gitignore -Datei verwenden könnenrollup-plugin-compress -Ein Rollup-Plugin, das die Dateien im Bundle nach dem Erstellen komprimiertrollup-plugin-copy -Ein Rollup-Plugin, das Ressourcen von einem Ort zum anderen kopiertrollup-plugin-html-template -Ein Rollup-Plugin, das die Bündeleintragspunkte in eine HTML-Datei injiziertrollup-plugin-import-stylesrollup-plugin-live-reload -Ein Rollup-Plugin, das Live-Nachladen von Dateien bei der Änderungrollup-plugin-minify-lit-html -Ein Rollup-Plugin, das Lit-HTML-Vorlagen abgibtrollup-plugin-replace -Ein Rollup-Plugin, das einen Import durch einen anderen Import ersetztrollup-plugin-workbox -Ein Rollup-Plugin, mit dem Workbox einen Servicearbeiter generiertrollup-plugin-budget -Ein Rollup-Plugin, das die Größen der Dateien mit einem bestimmten Budget vergleichtrollup-plugin-clean -Ein Rollup-Plugin, das Verzeichnisse vor dem Wiederaufbau reinigt rollup.config.ts.eslintrc.jsontsconfig.json einrichten.browserslistrc SETUPkarma.conf.js einrichtenpackage.json hinzuprettier.config.jstypings.d.ts hinzu!Der schnellste Weg, um zu beginnen, besteht darin, die CLI zu verwenden. Führen Sie den folgenden Befehl aus, um Ihr Projekt von Grund auf neu einzurichten. Wenn Sie die CLI verwenden, können Sie den Rest der Schritte in dieser Readme -Datei überspringen.
$ npm init web - config new < dir >Um es in Ihrem Projekt zu verwenden, können Sie es so installieren.
$ npm i @ appnest / web - config -- D rollup.config.tsHier ist ein Beispiel, wie Ihre Rollup -Konfigurationsdatei aussehen könnte:
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 einrichten {
"extends" : " ./node_modules/@appnest/web-config/tsconfig.json "
}.browserslistrc SETUP Die Tools, die Ihren Code transportieren, verwenden browserslist , um herauszufinden, was unterstützt wird. Ihr .browserslistrc könnte so aussehen.
last 2 Chrome versions
last 2 Safari versions
last 2 Firefox versions
karma.conf.js einrichten const { defaultResolvePlugins , defaultKarmaConfig } = require ( "@appnest/web-config" ) ;
module . exports = ( config ) => {
config . set ( {
... defaultKarmaConfig ( {
rollupPlugins : defaultResolvePlugins ( )
} ) ,
basePath : "src" ,
logLevel : config . LOG_INFO
} ) ;
} ; package.json hinzu Hier ein Beispiel, welche Skripte Sie zu Ihrer package.json -Datei hinzufügen können.
{
...
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 hinzu!Damit sich Typenkript nicht über SCSS, CSS und JSON -Importe beschweren.
/// <reference path="node_modules/@appnest/web-config/typings.d.ts" />Schritt 1: Importieren Sie Ihr Stylesheet mit der ES6 -Importsyntax
import "./main.scss" ;Schritt 2: Fügen Sie den Namen des Stylesheet in Ihre Rollup -Konfiguration auf
export default {
...
defaultPlugins ( {
...
importStylesConfig : {
globals : [ "main.scss" ]
} ,
...
} ) ,
...
} import css from "./my-component.scss" ; | Andreas Mehlsen | Du? |
Lizenziert unter MIT.