我制作了一个npm模块,它在节点中运行得很好,但是我也希望能像Socket.io一样在浏览器中使用它。在节点I中使用它:var AIM = require('aimjs')(server)
服务器参数是可选的,来自http.Server(Node.js doc),如果指定它作为Socket.io执行模块的客户端版本:
if (this.server != null) {
var listeners = this.server.listeners('request').slice()
this.server.removeAllListeners('request')
this.server.on('request', function (req, res) {
if (url.parse(req.url).pathname === '/AIM.js') {
res.setHeader('Content-Type', 'application/javascript')
res.writeHead(200)
res.end(fs.readFileSync(__dirname + '/AIM.client.js'))
} else {
for (var i = 0; i < listeners.length; i++) {
listeners[i].call(self.srv, req, res)
}
}
})
}
此文件(AIM.client.js)是我的main的浏览器版本,但该模块不在外面。我怎样才能让它全球化?我希望用户只需要安装模块,包括<script type='text/javascript' src='/AIM.js'></script>
,并且可以在客户端和服务器端使用它。
答案 0 :(得分:0)
浏览文件时,请使用--standalone
(-s
)选项。
示例:
browserify index.js -s aimjs
这将使您的文件成为UMD包。
window.aimjs
。