使用带有requireJS的节点包客户端?

时间:2014-05-02 09:40:12

标签: javascript node.js module requirejs

我需要在我正在构建的应用程序中解析客户端的一些CSS文件。有一个很好的npm包就可以做到:

https://github.com/NV/CSSOM

我想把这个包,粉碎成一个文件,然后在requireJS实现中加载它作为依赖项。基本上,我想像这样使用它:

//A module in which I'll use CSSOM - I use CommonJS syntax almost exclusively
define( function(require) {
    var $ = require('jquery');
    var CSSOM = require('lib/CSSOM');
});

完全披露,我以前从未在node.js中实际编码(我真的很想使用这个模块)。我该怎么做才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

将CSSOM加载为非AMD脚本

这将在一个文件中为您提供CSSOM。

CSSOM有指令将其构建为浏览器脚本,来自github site

$ git clone https://github.com/NV/CSSOM.git
$ cd CSSOM
$ npm install -d
$ ./node_modules/.bin/jake

根据我在那里看到的内容,您只需要一个shim配置声明:

CSSOM: {
    exports: 'CSSOM'
}

使用r.js

这将给出一堆组成CSSOM的模块。如果您想要这样的最终单个文件,则必须要求r.js优化ding r.js -convert的结果。

使用r.js转换CSSOM的代码库:

$ r.js -convert in out

其中inCSSOM的源树,而out是您想要的结果。因为CSSOM说它是纯JS,所以转换可能工作而不必做任何其他工作,因为我希望CSSOM不要使用特定于节点的模块,如{{1} }。但可能还有其他一些问题。例如,如果fs使CSSOM调用具有变量而不是字符串文字作为参数,则转换器无法转换它。无论如何,您应该查看documentation以了解可能出现问题的详细信息。