我需要在正在构建的应用程序中解析客户端的一些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中进行编码(我真的很想使用此模块)。我该怎么做才能做到这一点?

最佳答案

将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不使用像fs这样的特定于Node的模块。但是可能还有其他问题。例如,如果CSSOM进行的require调用使用变量而不是字符串文字作为参数,则转换器将无法对其进行转换。无论如何,您应该查看documentation以获得可能出现问题的详细信息。

09-30 22:25