创建一个支持browserify和jQuery <script>标记加载的包

Mik*_*maa 6 javascript jquery npm browserify

我正在开发一个JavaScript库(bitcoin-prices.js),我想用browserify维护它.该库依赖于jQuery.我不想强迫库用户迁移到browserify,但保留"drop one file + script tag"集成给那些没有从JavaScript社区喝过最新koolaid的人.

我的问题是如何使用browserify创建bundle.js,以便

  • 支持browserify的用户可以从NPM安装包,具有适当的jQuery依赖性

  • 传统用户仍然可以<script>在bundle中使用标记drop,将jQuery加载到其他任何地方,<script>并且代码仍然可以正常工作

我想周围需要一些样板代码$ = require('jquery.js')

Ian*_*Lim 4

惯例是这样做(没有 .js):

var $ = require('jquery')
Run Code Online (Sandbox Code Playgroud)

如果您使用 grunt-browserify ( https://github.com/jmreidy/grunt-browserify ),

以这种方式编译你的库:

  your_task:{
    src:'{{your library's js file}}',
    dest:'{{your library's browserified file}}',
    options: {
      external: ["jquery"]
    }
  },
Run Code Online (Sandbox Code Playgroud)

在主页上,顺序将如下所示:

<header>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
      <script type="text/javascript" src="{{your library's browserified file}}"></script>
</header>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助