Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
6d58c9ed
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6d58c9ed
编写于
9月 24, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'gero3/dev' into dev
上级
97ee7a81
d15f72a4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
58 addition
and
169 deletion
+58
-169
utils/build.js
utils/build.js
+57
-168
utils/package.json
utils/package.json
+1
-1
未找到文件。
utils/build.js
浏览文件 @
6d58c9ed
var
fs
=
require
(
"
fs
"
);
var
path
=
require
(
"
path
"
);
var
arg
sparser
=
require
(
"
argsparser
"
);
var
arg
parse
=
require
(
"
argparse
"
);
var
uglify
=
require
(
"
uglify-js
"
);
function
merge
(
files
){
"
use strict
"
;
var
buffer
=
[];
for
(
var
i
=
0
,
il
=
files
.
length
;
i
<
il
;
i
++
){
var
fileName
=
path
.
join
(
"
src
"
,
files
[
i
]);
buffer
.
push
(
fs
.
readFileSync
(
fileName
,
'
utf8
'
));
}
return
buffer
.
join
(
""
);
}
function
output
(
text
,
filename
){
"
use strict
"
;
var
file
=
path
.
join
(
'
build
'
,
filename
);
fs
.
writeFileSync
(
file
,
text
,
'
utf8
'
);
}
function
compress
(
text
,
fname_externs
){
/*
externs = ""
if fname_externs:
externs = "--externs %s.js" % fname_externs
in_tuple = tempfile.mkstemp()
with os.fdopen(in_tuple[0], 'w') as handle:
handle.write(text)
out_tuple = tempfile.mkstemp()
os.system("java -jar compiler/compiler.jar --warning_level=VERBOSE --jscomp_off=globalThis --jscomp_off=checkTypes --externs externs_common.js %s --language_in=ECMASCRIPT5_STRICT --js %s --js_output_file %s" % (externs, in_tuple[1], out_tuple[1]))
with os.fdopen(out_tuple[0], 'r') as handle:
compressed = handle.read()
os.unlink(in_tuple[1])
os.unlink(out_tuple[1])
return compressed*/
"
use strict
"
;
return
uglify
(
text
);
}
function
addHeader
(
text
,
endFilename
){
"
use strict
"
;
return
"
//
"
+
endFilename
+
"
- http://github.com/mrdoob/three.js
\n
"
+
text
;
}
function
makeDebug
(
text
){
"
use strict
"
;
var
position
=
0
;
while
(
true
){
position
=
text
.
indexOf
(
"
/* DEBUG
"
,
position
);
if
(
position
==
-
1
){
break
;
}
text
=
text
.
substring
(
0
,
position
)
+
text
.
substring
(
position
+
8
);
position
=
text
.
find
(
"
*/
"
,
position
);
text
=
text
.
substring
(
0
,
position
)
+
text
.
substring
(
position
+
2
);
}
return
text
;
}
function
buildLib
(
files
,
debug
,
minified
,
filename
,
fname_externs
){
"
use strict
"
;
var
text
=
merge
(
files
);
if
(
debug
){
text
=
makeDebug
(
text
);
filename
=
filename
+
'
Debug
'
;
}
var
folder
;
if
(
filename
==
"
Three
"
){
folder
=
''
;
}
else
{
folder
=
'
custom/
'
;
}
filename
=
filename
+
'
.js
'
;
//print("=" * 40)
console
.
log
(
"
========================================
"
);
console
.
log
(
"
Compiling
"
+
filename
);
//print("=" * 40)
console
.
log
(
"
========================================
"
);
if
(
minified
){
text
=
compress
(
text
,
fname_externs
);
}
output
(
addHeader
(
text
,
filename
),
folder
+
filename
);
}
function
buildIncludes
(
files
,
filename
){
"
use strict
"
;
//var template = "\t\t<script src='../src/%s'></script>";
//var text = "\n".join(template % f for f in files)
var
text
=
[];
for
(
var
i
=
0
,
il
=
files
.
length
;
i
<
il
;
i
++
){
text
.
push
(
"
\t\t
<script src='../src/
"
+
files
[
i
]
+
"
'></script>
"
);
}
output
(
text
.
join
(
"
\n
"
),
filename
+
'
.js
'
);
}
function
getFileNames
(){
"
use strict
"
;
var
fileName
=
"
utils/files.json
"
;
var
data
=
JSON
.
parse
(
fs
.
readFileSync
(
fileName
,
'
utf8
'
));
return
data
;
}
function
parse_args
(){
"
use strict
"
;
//parse
var
returnValue
=
argsparser
.
parse
();
/*
# If no arguments have been passed, show the help message and exit
if len(sys.argv) == 1:
parser.print_help()
sys.exit(1)
*/
for
(
var
i
in
returnValue
){
if
(
i
.
substring
(
0
,
2
)
==
"
--
"
){
returnValue
[
i
.
substring
(
2
)]
=
returnValue
[
i
];
delete
returnValue
[
i
];
}
else
{
delete
returnValue
[
i
];
}
}
return
returnValue
;
}
var
spawn
=
require
(
'
child_process
'
).
spawn
;
function
main
(){
"
use strict
"
;
var
args
=
parse_args
();
var
debug
=
args
.
debug
;
var
minified
=
args
.
minified
;
var
files
=
getFileNames
();
var
config
=
[
[
'
Three
'
,
'
includes
'
,
''
,
files
[
"
common
"
].
concat
(
files
[
"
extras
"
]),
args
.
common
],
[
'
ThreeCanvas
'
,
'
includes_canvas
'
,
''
,
files
[
"
canvas
"
],
args
.
canvas
],
[
'
ThreeWebGL
'
,
'
includes_webgl
'
,
''
,
files
[
"
webgl
"
],
args
.
webgl
],
[
'
ThreeExtras
'
,
'
includes_extras
'
,
'
externs_extras
'
,
files
[
"
extras
"
],
args
.
extras
]
];
for
(
var
i
=
0
,
il
=
config
.
length
;
i
<
il
;
i
++
){
var
chosenConfig
=
config
[
i
],
fname_lib
=
chosenConfig
[
0
],
fname_inc
=
chosenConfig
[
1
],
fname_externs
=
chosenConfig
[
2
],
files
=
chosenConfig
[
3
],
enabled
=
chosenConfig
[
4
];
if
(
enabled
||
args
.
all
){
buildLib
(
files
,
debug
,
minified
,
fname_lib
,
fname_externs
);
if
(
args
.
includes
){
buildIncludes
(
files
,
fname_inc
);
}
}
}
"
use strict
"
;
var
parser
=
new
argparse
.
ArgumentParser
();
parser
.
addArgument
([
'
--include
'
],
{
"
action
"
:
'
append
'
,
'
required
'
:
true
});
parser
.
addArgument
([
'
--externs
'
],
{
"
action
"
:
'
append
'
,
"
defaultValue
"
:[
'
./externs/common.js
'
]});
parser
.
addArgument
([
'
--minify
'
],
{
"
action
"
:
'
storeTrue
'
,
"
defaultValue
"
:
false
});
parser
.
addArgument
([
'
--output
'
],
{
"
defaultValue
"
:
'
../build/three.js
'
});
var
args
=
parser
.
parseArgs
();
var
output
=
args
.
output
;
console
.
log
(
'
* Building
'
+
output
);
console
.
dir
(
args
);
var
buffer
=
[];
for
(
var
i
=
0
;
i
<
args
.
include
.
length
;
i
++
){
var
files
=
JSON
.
parse
(
fs
.
readFileSync
(
'
./includes/
'
+
args
.
include
[
i
]
+
'
.json
'
,
'
utf8
'
));
for
(
var
file
=
0
;
file
<
files
.
length
;
file
++
){
buffer
.
push
(
fs
.
readFileSync
(
files
[
file
],
'
utf8
'
));
}
}
console
.
log
(
buffer
.
length
);
var
temp
=
buffer
.
join
(
""
);
if
(
!
args
.
minify
){
fs
.
writeFileSync
(
output
,
temp
,
'
utf8
'
);
}
else
{
fs
.
writeFileSync
(
output
,
uglify
(
temp
),
'
utf8
'
);
// An attempt to get the closure minifier working
// var externs = ' --externs ' + args.externs.join();
// console.log(externs);
// var temppath = output + ".tmp";
// fs.writeFileSync(temppath,temp,'utf8');
// var java = spawn("java -jar ./compiler/compiler.jar --warning_level=VERBOSE --jscomp_off=globalThis " + externs + " --jscomp_off=checkTypes --language_in=ECMASCRIPT5_STRICT --js " + temppath + " --js_output_file " + output);
// java.stdout.on('data', function (data) {
// console.log(data);
// });
// java.stderr.on('data', function (data) {
// console.log('java stderr: ' + data);
// });
// java.on('exit', function (code) {
// if (code !== 0) {
// console.log('java process exited with code ' + code);
// }
// });
}
}
main
();
...
...
utils/package.json
浏览文件 @
6d58c9ed
...
...
@@ -10,7 +10,7 @@
"devDependencies"
:
{
"uglify-js"
:
"*"
,
"arg
sparser
"
:
"*"
"arg
parse
"
:
"*"
},
"repository"
:
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录