lit-build v2.0.1
LIT-ELEMENT
Maak het project aan en install de nodige dependencies
# Create folder
mkdir lit-element-tester
npm init -y
npm i --save-dev polymer-cli
npm i lit-element
polymer serveMaak een html file om de code te testen, hier laadt je de javascript in als module om npm package te simuleren
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="module" src="./index.js"></script>
</head>
<body>
<my-element></my-element>
</body>
</html>We voegen css en een afbeelding toe om te zorgen dat alles gepacked wordt
touch index.cssh1 {
color : red
}mkdir src/assets
# hier afbeelding toevoegenIndex.js zal dienst doen als module, we laden gewoon alles in
touch index.jsimport './src/my-element';Het lit-element zelf aanmaken gebeurt alsvolgt:
mkdir src && cd src
touch my-element.jsimport { LitElement, html } from 'lit-element';
class MyElement extends LitElement {
render(){
return html`
<link rel="stylesheet" href="./index.css">
<h1>Hello world!</h1>
<img src="./src/assets/img.jpg">
`;
}
}
customElements.define('my-element', MyElement);BUILD
We gaan alles bundelen met webpack daarvoor hebben we de volgende dependencies:
npm i webpack webpack-cliWe voegen de volgende file toe:
touch webpack.config.jsin package.json voeg je het volgende toe bij scripts:
"build": "webpack --config webpack.config.js"De config file zelf bevat:
const path = require('path');
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
}Maar op dit moment zijn er nog geen css of images mee. Dat moeten we alsvolgt gaan opvangen:
npm install --save-dev style-loader css-loaderEn in my-element.js import je de css (dit is mogelijk door deze dependencies)
import './index.css'Voor afbeeldingen en fonts is dit dezelfde logica. Je hebt de volgende dependency nodig:
npm install --save-dev file-loaderDe afbeelding importeren:
PUBLISHEN
cd dist
npm login
# invullen
npm init -y
npm publishGEBRUIKEN
6 years ago