Skip to content

Instantly share code, notes, and snippets.

@riskers
Last active April 10, 2017 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save riskers/fa84b990fbe59e6abd10455886bf26ba to your computer and use it in GitHub Desktop.
Save riskers/fa84b990fbe59e6abd10455886bf26ba to your computer and use it in GitHub Desktop.
开发一个 es6 的库

看了魔法哥翻译的文章 github.com/cssmagic/blog/issues/56 ,解决了我一直以来的困惑,如何使用es6开发一个模块,可以直接使用,也可以 webpack 打包使用

  • 使用 babel 编译 es6
  • 使用 webpack 将模块打包成 UMD ,这样就可以在任何地方使用了
  • 顺便还能 eslint

可是,还有一个问题没有解决:如果你的模块中依赖了别的模块,怎么办?

比如依赖了 jquery ,可以参考这篇文章 https://github.com/krasimir/webpack-library-starter

externals : {
  jquery: 'jQuery'
}

然后发布我们的包,或者先 npm link

之后,新建一个 test ,然后 npm link xxx

如果我们直接使用 xxx,是 之后,新建一个 test ,然后 npm link xxx

直接使用 xxx

<script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.js"></script>
<script src="node_modules/xxx/index.js"></script>

使用 webpack 打包:

externals: {
		'jQuery': 'jQuery'
}

因为 xxx 已经被 webpack 打包过一次,所以 xxx 里 require 的是 jQuery,而不是 jquery

<script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.js"></script>
<script src="dist/main.js"></script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment