การกำหนดค่าการหมุนเพื่อช่วยให้คุณสร้างเว็บแอปพลิเคชันที่ทันสมัย
การกำหนดค่าใช้งานได้ดีมากกับไลบรารีที่มีแสงสว่างและองค์ประกอบแสง ฉันต้องการแบ่งปันเพื่อให้คุณสามารถใช้มันได้หรือสร้างขึ้นมา
create-rollup-config.js ที่ขยายได้สำหรับการใช้การโรลอัลกับคุณสมบัติหวานเช่นการนำเข้า SCSS การสร้างงานบริการที่มีกล่องทำงานการโหลดสดการรับมือทรัพยากรการเผชิญปัญหา chunking, treeshaking, typeescriptcreate-karma-config.js ที่ขยายได้เพื่อช่วยในการตั้งค่าการทดสอบกรรมของคุณtsconfig.json เพื่อกำหนดค่า typescript ของคุณtslint.json เพื่อกำหนดค่าผ้าสำลีของคุณtypings.d.ts เพื่อกำหนดค่าการพิมพ์ของคุณ.browserslistrc เพื่อกำหนดค่าวิธีการ transpiled ไฟล์ของคุณ.gitignore คุณสามารถใช้เป็นแรงบันดาลใจสำหรับไฟล์ .gitignore ของคุณเองrollup-plugin-compress ปลั๊กอินโรลอัพที่บีบอัดไฟล์ในชุดชุดหลังจากสร้างrollup-plugin-copy ปลั๊กอินโรลอัพที่คัดลอกทรัพยากรจากที่หนึ่งไปยังอีกที่หนึ่งrollup-plugin-html-template ปลั๊กอินโรลอัพที่ฉีดจุดเข้าชุดข้อมูลลงในไฟล์ HTMLrollup-plugin-import-styles ปลั๊กอินโรลอัพที่ทำให้สามารถนำเข้าไฟล์สไตล์โดยใช้ postcssrollup-plugin-live-reload ปลั๊กอินโรลอัพที่โหลดไฟล์สดใหม่เมื่อมีการเปลี่ยนแปลงrollup-plugin-minify-lit-html ปลั๊กอินโรลอัพที่ minifies lit-html templatesrollup-plugin-replace ปลั๊กอินโรลอัพที่แทนที่การนำเข้ากับการนำเข้าอื่นrollup-plugin-workbox ปลั๊กอินโรลอัพที่ใช้ Workbox เพื่อสร้างพนักงานบริการrollup-plugin-budget ปลั๊กอินโรลอัพที่เปรียบเทียบขนาดของไฟล์กับงบประมาณที่ระบุrollup-plugin-clean ปลั๊กอินโรลอัพที่ทำความสะอาดไดเรกทอรีก่อนที่จะสร้างใหม่ rollup.config.ts.eslintrc.jsontsconfig.json.browserslistrckarma.conf.jspackage.jsonprettier.config.jstypings.d.ts ของคุณต่อไปนี้!วิธีที่เร็วที่สุดในการเริ่มต้นคือการใช้ CLI เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าโครงการของคุณตั้งแต่เริ่มต้น หากคุณเลือกใช้ CLI คุณสามารถข้ามขั้นตอนที่เหลือในไฟล์ readme นี้ได้
$ npm init web - config new < dir >หากต้องการใช้ในโครงการของคุณคุณสามารถติดตั้งได้เช่นนี้
$ npm i @ appnest / web - config -- D rollup.config.tsนี่คือตัวอย่างเกี่ยวกับไฟล์การกำหนดค่าการหมุนของคุณที่มีลักษณะอย่างไร:
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 เครื่องมือที่ถ่ายทอดรหัสของคุณใช้ browserslist เพื่อหาสิ่งที่รองรับ .browserslistrc ของคุณอาจมีลักษณะเช่นนี้
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 นี่คือตัวอย่างเกี่ยวกับสคริปต์ที่คุณสามารถเพิ่มลงในไฟล์ package.json ของคุณ
{
...
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 ของคุณต่อไปนี้!นี่คือการทำให้ TypeScript ไม่บ่นเกี่ยวกับ SCSS, CSS และ JSON นำเข้า
/// <reference path="node_modules/@appnest/web-config/typings.d.ts" />ขั้นตอนที่ 1: นำเข้าสไตล์ชีทของคุณโดยใช้ไวยากรณ์การนำเข้า ES6
import "./main.scss" ;ขั้นตอนที่ 2: รวมชื่อของสไตล์ชีทในการกำหนดค่าการหมุนของคุณ
export default {
...
defaultPlugins ( {
...
importStylesConfig : {
globals : [ "main.scss" ]
} ,
...
} ) ,
...
} import css from "./my-component.scss" ; | Andreas Mehlsen | คุณ? |
ได้รับใบอนุญาตภายใต้ MIT