我正在使用browserify来捆绑前端代码.这是伟大的到目前为止,但我一直很难混合npm和非npm包.例如,将npm版本的jQuery与非CJS版本的jQuery插件一起使用.
我目前的解决方案是使用package.json中的浏览器键指向jQuery的dist,然后使用browserify-shim
将其添加为插件的依赖项.
有没有比现在更干净的方法呢?
编辑:我正在尝试使用npm和package.json来管理我的所有依赖项,所以我不想在这个项目中使用bower.叫我疯了:)
的package.json
"dependencies": { "jquery": "~2.1.0","browserify": "latest","browserify-shim": "^3.5.0","jquery-waypoints": "git@github.com:imakewebthings/jquery-waypoints.git","jquery-validation": "git://github.com/jzaefferer/jquery-validation" },"browser": { "jquery": "./node_modules/jquery/dist/jquery.js","jquery-waypoints": "./node_modules/jquery-waypoints/waypoints.js","jquery-validate": "./node_modules/jquery-validation/build/release.js" },"browserify-shim": { "jquery": "$","jquery-waypoints": { "depends": [ "jquery" ] },"jquery-validate": { "depends": [ "jquery" ] } },"browserify": { "transform": [ "browserify-shim" ] }
解决方法
我会做如下:
>使用debowerify包含可用于bower的库,在你的情况下将是jquery-waypoint,jquery-validation
>使用npm包中的jquery,这可以在这里https://github.com/jquery/jquery
因此,我也暂时删除browserify-shim.