@egadams/monitor-led v1.0.0
Typescript Web Component Boilerplate
These components where built with the code from this link: https://github.com/lucabro81/typescript-web-component-boilerplate.git This (IMO) is the cleanest example of a web component, typescript, and webpack combination builder that is nicely put together. The repository pointed to by the link above has helped me understand web components at a deeper level. The source code will tell you what steps that you need to take to make a web component and prepare it for distribution.
Template to build lazy loaded web components collections with Typescript and nothing(almost)else. Well, there're some other dependencies but are mainly for webpack.
Installation
https://github.com/lucabro81/typescript-web-component-boilerplate.git
cd path/to/project/folder
npm installHow to use
npm run create-new-component nameComponentThis command will create a component folder in /src, named /name-component, with seven files inside: a Typescript class and dts, a file that exports an array of observed attributes, an index file and relatively dts to export a function to register the component, the css file and the html template.
An import will be added to main.ts
Scripts
npm run startStart a webpack dev server with hot reloading
npm run watchStart a webpack watcher
npm run buildGuess what... yep.
npm run build:prod:patch | build:prod:minor | build:prod:majorGuess what... yep, but production mode. Useful when you want to deploy to a cdn the components' library. Also bump the version project
npm run build:npmPrepare the package for the npm publish
npm run publish:npm:patch | publish:npm:minor ! publish:npm:majorClean the package folder, emit the js ready for the publication, move, dts in the right place and publish. Also bump the version project
npm run cleanGet rid of node_modules and package-lock.json and reinstall all the (few) dependencies
npm run updateUpdate dependencies.
npm run lintLinter and prettier that run on staged changes, it seems the git hook on commit doesn't work with phpstorm, I've to understand why