Watch Star Fork

无心love / SimplepackMIT

forked from 码云极速下载 / Simplepack 
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
Webpack 是一个很好的工具,但它需要一个复杂的配置文件来构建
Loading... 4.30 KB


Make pack more simple than ever, base on Webpack (version 3+)

Webpack is a good tool, but it need a complex config file to do the build.

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 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


# global install
npm install -g simplepack

# or you need to admin auth.
sudo npm install -g simplepack



# 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


Both dev and publish command has the same options

 ╭∩╮(︶︿︶)╭∩╮: simplepack -h
[Simplepack]:  Start parse config file...

  Usage: simplepack [options] [command]


    dev, d      Start dev server for develop
    help        Display help
    publish, p  get dist. file for publish


    -C, --cli-only        Use CLI config only, not merge config file (disabled by default)
    -C, --compress        Whether compress the output code
    -c, --config          Specifies a different configuration file to pick up
    -E, --engine [value]  The name of workflow engine (defaults to "webpack")
    -e, --entry           The list entries
    -E, --export          The name of Component export
    -E, --extract-css     Whether extract css file from bundle (disabled by default)
    -h, --help            Output usage information
    -n, --not-clear       Do not clear the output dir
    -v, --version         Output the version number
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


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': [

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


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



项目点评 ( 0 )