Как скомпилировать код Google Closure в модули с помощью closure_builder.py?

Как скомпилировать код Google Closure в несколько модулей с помощью closure_builder.py?

Я попробовал эту команду:

python closurebuilder.py 
--root closure/closure-library 
--root closure/client 
--namespace="client.start" 
--output_mode=compiled 
--compiler_jar=compiler.jar 
--output_file closure/compiled.js 
--compiler_flags=--compilation_level=ADVANCED_OPTIMIZATIONS 
--compiler_flags=--module base:1  
--compiler_flags=--js=closure/modules/base.js  
--compiler_flags=--module editor:1  
--compiler_flags=--js=closure/modules/editor.js  
--compiler_flags=--module maps:1  
--compiler_flags=--js=closure/modules/maps.js  
--compiler_flags=--module uploader:1  
--compiler_flags=--js=closure/modules/uploader.js  
--compiler_flags=--module visualization:1  
--compiler_flags=--js=closure/modules/visualization.js 
--compiler_flags=--output_wrapper="(function() {%output%})();"

Но вылетает следующая ошибка:

closurebuilder.py: Scanning paths...
Traceback (most recent call last):
  File "closurebuilder.py", line 256, in <module>
    main()
  File "closurebuilder.py", line 196, in main
    sources.add(_PathSource(js_path))
  File "closurebuilder.py", line 167, in __init__
    super(_PathSource, self).__init__(source.GetFileContents(path))
  File "source.py", line 110, in GetFileContents
    fileobj = open(path)
IOError: [Errno 2] No such file or directory: 'base:1'

person Korneel    schedule 30.01.2013    source источник


Ответы (1)


На самом деле я только что столкнулся с похожей проблемой, за исключением того, что это была не «база: 1», а «Файлы». Оказывается, я выполнял скрипт из C:\Program Files (x86)... и эти лишние пробелы мешали скрипту Closure и тому, как он разрешает JS-файлы. Выполнение его с пути без пробела решило проблему, надеюсь, вы тоже сможете это исправить, возможно, попробуйте добавить кавычки вместо аргументов.

Фабьен

person fnicollet    schedule 31.01.2013
comment
Вы компилируете свой код в несколько модулей или в один файл? Я могу скомпилировать в один файл, но не в несколько модулей. - person Korneel; 01.02.2013