它是一个库,所以我可以直接在浏览器中加载它。它也是一个npm包,但我怎么能用它作为moudule?
在浏览器中,加载js文件会轻松更改对象,但在nodejs中工作时却不一样,我无法弄明白。
答案 0 :(得分:28)
您只需安装模块:
npm install sugar
然后就像API说的那样使用它:
var http = require('http');
var sugar = require('sugar');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('hey_there_good-lookin'.camelize());
}).listen(process.env.PORT || 8080);
答案 1 :(得分:8)
Sugar不用作标准的CommonJS模块,因为库的整个点是修改内置原型。您需要将它放入项目中,所有内置对象都将被扩展,您可以从那里使用它们。
编辑:自v2.0.0起,现在不再适用。原型修改现在是选择性的,因此您可以像使用导出对象的任何其他节点模块一样使用Sugar。有关更多信息,请参阅https://sugarjs.com/quickstart/
答案 2 :(得分:1)
不要使用sugar.js - 它会修改原生原型,所以一切都会使用它们 - 而不仅仅是你的模块。这样做是令人难以置信的阴险,它不是模块化的,它会在你最不期望的时候咬你。
值得再说一遍:不要使用任何修改本地原型的模块,这些模块在polyfilling的(非常合理的)上下文之外。不要使用Sugar.js。特别是在node.js中 - 那里有一个模块系统。我个人遇到了修改原生原型的问题。奇怪的事情可能发生在你的代码的深处。
以下是有关修改原生对象的原因的更多信息:
http://www.nczonline.net/blog/2010/03/02/maintainable-javascript-dont-modify-objects-you-down-own/
更新:听起来像Sugar v2.0.0现在将扩展本机视为选择加入,这要好得多(因为默认情况下不会扩展本机)。