背景
我一直在使用C预处理器来管理和"编译"包含多个文件和构建目标的半大型JavaScript项目.这使全面进入C预处理指令一样#include
,#define
,#ifdef
等从JavaScript中.这是一个示例构建脚本,因此您可以测试示例代码:
#!/bin/bash
export OPTS="-DDEBUG_MODE=1 -Isrc"
for FILE in `find src/ | egrep '\.js?$'`
do
echo "Processing $FILE"
cat $FILE \
| sed 's/^\s*\/\/#/#/' \
| cpp $OPTS \
| sed 's/^[#:<].*// ; /^$/d' \
> build/`basename $FILE`;
done
Run Code Online (Sandbox Code Playgroud)
创建一个src
和一个build
目录,然后放入.js文件src
.
便利宏
最初,我只是想要预处理器的东西#include
,也许还有几个#ifdef
,但我想,有一些方便的宏也不是很好吗?随后进行了实验.
#define EACH(o,k) for (var k in o) if (o.hasOwnProperty(k))
Run Code Online (Sandbox Code Playgroud)
很酷,所以现在我可以这样写:
EACH (location, prop) {
console.log(prop + " : " location[prop]);
}
Run Code Online (Sandbox Code Playgroud)
它将扩展到: …