我需要在正在构建的应用程序中解析客户端的一些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
其中
in
是CSSOM
的源树,而out
是要作为结果的位置。因为CSSOM表示它是纯JS,所以此转换可能无需进行任何其他操作即可工作,因为我希望CSSOM
不使用像fs
这样的特定于Node的模块。但是可能还有其他问题。例如,如果CSSOM
进行的require
调用使用变量而不是字符串文字作为参数,则转换器将无法对其进行转换。无论如何,您应该查看documentation以获得可能出现问题的详细信息。