Simplepack
Make pack more simple than ever, base on Webpack (version 4+)
simplepack
want to let you drop the complex config file, use single line command (or minimal config file) to finish the job.
- Use out of box, many useful loaders and plugins builtin
- Extend webpack config ability
- Made for global use, so just install once for all
- Buildin with webpack dev server, and HMR
- Use same config to do develop and publish together
simplepack
support Webpack v4 now !
Ability
simplepack
have lots of loaders and plugins builtin, you can build these extensions directly
- React:
.jsx
- Vue:
.vue
(with ES6+ support) - Javascript:
.js
(with ES6+ support) - Styles:
.less
or.css
(extract css to single file) - JSON:
.json
- Text:
.txt
Install
# global install npm install -g simplepack # or you need to admin auth. sudo npm install -g simplepack
API
Commands
# dev: start a dev server, build and serve file in memory simplepack dev --entry ./index.js # publush: build and export file to ./dist folder simplepack publish --entry ./index.js
Options
Both dev and publish command has the same options
╭∩╮(︶︿︶)╭∩╮: simplepack -h[Simplepack]: Start parse config file... Usage: simplepack [options] [command] Commands: dev, d Start dev server
Description | Type | Default | |
---|---|---|---|
entry | The list entries | String / Object | null |
compress | Whether uglify the output code | Boolean | false |
export | The name of Component export (commonly use to expose a library with UMD) | String | null |
cli-only | Use CLI config only, not merge config file | Boolean | false |
option.entry
Most like Webpack config option.entry
, but extend the glob ablity
// simple // './test/a.js' => './dist/test/a.js' entry: './test/a.js' // simple with glob: expand to multi entry // './test/(a,b,c...).js' => './dist/test/(a,b,c...).js' entry: './test/*.js' // complex entry: // './test/a.js' => './dist/a-new.js' 'a-new': './test/a.js' // special @multi key, same as `simple with glob` '@multi': './test/*.js' // special @vendor key, specific the third party lib. // vendor will pack to a single file, instead of pack into other bundle // jquery+loadsh => './dist/vendor.js' '@vendor': 'jquery' 'lodash'
Other notice:
-
Complex entry support
array
in object value, it indicate you want multi file to build in one entry -
vendor.js
need to manualy import to your project, use<script>
tag, more detail
Usage
After install you can pack in any project, just need single line command.
CLI only
simplepack dev --entry './index.js' --compress --export 'AComponent'
With Config File
Put a js file to your project root, named simplepack.config.js
entry: index: './index.js' compress: true export: 'AComponent'
Full config support, please see here
License
MIT