JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 46
  • Score
    100M100P100Q59692F
  • License MIT

Create a professional project environment with Webpack, TypeScript, Preact and Redux-Zero. (small and compact)

Package Exports

  • generator-webpack-preact

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (generator-webpack-preact) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Generator Webpack Preact

NPM Version NPM Donwloads Github Latest Release Version Github Downloads Travis CI Codacy Badge Languages Commits Minified Gzipped License Issues

This scaffold creates in seconds for you a professional environment to develop with a package of Webpack, TypeScript, Preact and Redux-Zero a application in HTML, SASS, TS(X) and JS(X).

  • Development Server with Hot Module Replacement (HMR) ready.
  • Configs was splited to development and production
  • Plugins inside and ready to add more
  • Install packages after scaffolding ready
  • You can create more components and choose it in the scaffolding.

Theme Page

Serach in Yeoman generator for webpack-preact or preact.

Install with npm and use with Yeoman

Install Node.js (npm is inside) to use the Node Package Manager. You can use yo (Yeoman) to install the scaffold and start with it.

Switch to the projects folder.

username$ cd /Users/username/projects/
projects$ npm i generator-webpack-preact
projects$ yo

If promt a call

? 'Allo Tarim,! What would you like to do? (Use arrow keys)
  Run a generator
> webpack-preact

or directly

projects$ yo webpack-preact

Enter and create your project

Or install the generator global

projects$ sudo npm i -g generator-webpack-preact

Type password and now run in your project folder

projects$ yo

If promt a call

? 'Allo Tarim,! What would you like to do? (Use arrow keys)
  Run a generator
> webpack-preact

or directly

projects$ yo webpack-preact

Enter and create your project

Install with Git and use with Webpack

Install Git to clone with it. Create a Scaffold Templates folder and open your Terminal, to switch in the folder.

username$ cd /Users/username/scaffold/templates/

Clone the repo or download to the place, you want your templates.

templates$ git clone https://github.com/prod3v3loper/generator-webpack-preact.git /Users/username/scaffold/templates/

And now install all Dependencies in package.json for the generator

templates$ npm install

Now create your main Projects folder. This folder contains all projects that we then create.

Switch to the projects folder.

templates$ cd /Users/username/projects/

Start the scaffolding with the webpack-cli init from our scaffold templates folder with the template generator-webpack-preact

projects$ webpack init /Users/username/scaffold/templates/generator-webpack-preact

Promt for the two solutions

And we become a promt ;)

? Customer name? (customer)
? Project year? (2019)
? Project name? (newsletter)
? Components you want to use? (type comma seperated) (counter)
? Want you install all dependencies? Y/n

After answer all questions start the create

   create src/index.tsx
   create src/scss/style.scss
   create public/index.html
   create package.json
   create global.config.json
   create tsconfig.dev.json
   create tsconfig.pro.json
   create src/components/counter/actions.js
   create src/components/counter/counter.js
   create src/components/counter/store.js
   create webpack.config.js
   create webpack.dev.js
   create webpack.pro.js

What this do

The following structure is created after the prompt input. With the typed data.

Projects

├── customer/ (project name)
|   └── year/ (2019)
|       └── project/ (newsletter)
|           └── public/
|           |   └── index.html
|           └── src/
|               └── components/
|               |   └── counter/
|               |       └── actions.js
|               |       └── counter.js
|               |       └── store.js
|               └── scss/
|               |   └── style.scss
|               └── index.tsx

But the idea behind it is to collect and manage all our projects in our projects folder. So every time we call the generator in our projects folder and create a new project with customer name, it will be added to the others.

Projects

├── customer/ (project name)
|   └── year/ (2019)
|       └── project/ (newsletter)
|           └── public/
|           |   └── index.html
|           └── src/
|               └── components/
|               |   └── counter/
|               |       └── actions.js
|               |       └── counter.js
|               |       └── store.js
|               └── scss/
|               |   └── style.scss
|               └── index.tsx
|
├── another-customer/
|   └── 2018/
|   |   └── project1/
|   |   |   └── ...
|   |   └── project2/
|   |       └── ...
|   └── 2019/
|       └── project1/
|       |   └── ...
|       └── project2/
|           └── public/
|           |   └── index.html
|           └── src/
|               └── components/
|               |   └── counter/
|               |       └── actions.js
|               |       └── counter.js
|               |       └── store.js
|               └── scss/
|               |   └── style.scss
|               └── index.tsx

Usage

Now run and see the Magic :)

Switch to the new project folder we have created. (You typed in the prompt default newsletter)

projects$ cd /Users/username/projects/customer/year/newsletter

If you not installed dependencies, then install first.

projects$ npm install

This command start the Server with the hotmodule.

newsletter$ npm run build:dev

This command build the dist folder with the end product.

newsletter$ npm run build:release

Contribute

Please file an issue if you think something could be improved. Please submit Pull Requests when ever possible.

Authors

License

MIT