与Bower和npm相同的模块/包
有没有办法编写一个单独的模块/包,可以发布到npm和Bower ,而不必重复文件?
想象一下,你有一个简单的JS文件,其中包含一些独立的代码(即它没有任何外部依赖)。
一个理想的目录看起来像这样:
/file.js /package.json /bower.json
在这种情况下,问题是“file.js”与npm一起工作将需要一个module.exports
语句,而这不适用于Bower。
那么,有没有办法避免产生两个单独的几乎相同的文件?
这似乎是迄今为止最好的select(由Angular团队启发)。
在项目根目录下创build一个index.js
文件,内容如下:
module.exports = require('your-original-module.js');
然后,在package.json
添加这一行:
"main": "index.js",
简单,但有效!
如果你的模块不依赖于其他npm模块,你可以提供文件(可以称之为“bowerify.js”)
window.MyUtility = require('./file');
将公用事业公开为全局variables。
然后使用browserify打包浏览器的代码:
src: 'bowerify.js', dest: 'my_bower_module.js'
现在,您可以使用bower安装my_bower_module.js。