Chciałbym wiedzieć, jak mogę użyć Pythona, aby połączyć wiele plików JavaScript w jednym pliku.

Buduję silnik z komponentem w JavaScript i chcę go rozpowszechniać za pomocą jednego pliku, na przykład silnik.

Alternatywnie, chciałbym, aby użytkownicy otrzymali całe źródło, które mają hierarchię plików i katalogów, a przy całym źródle powinni otrzymywać skrypt Build.py Python, który można edytować, aby włączyć różne systemy i komponenty , które są zasadniczo plikami .js w komponentach / systemach / katalogach.

Jak mogę załadować pliki opisane na liście (ścieżki) i łączą je w jeden plik?

Na przykład:

toLoad =
[
    "core/base.js",
    "components/Position.js",
    "systems/Rendering.jd"
]

Skrypt powinien ciążyć to w porządku.

Jest to również projekt GIT. Czy jest sposób, aby skrypt przeczytał wersję programu z Git, a następnie napisać go jako komentarz na początku?

2
corazza 26 lipiec 2012, 03:01

3 odpowiedzi

Najlepsza odpowiedź

Spowoduje to połączenie plików:

def read_entirely(file):
    with open(file, 'r') as handle:
        return handle.read()

result = '\n'.join(read_entirely(file) for file in toLoad)

Następnie możesz je wysunąć w razie potrzeby lub napisać je za pomocą kodu podobnego do następujących:

with open(file, 'w') as handle:
    handle.write(result)
5
user1479055user1479055 25 lipiec 2012, 23:05

A może coś takiego?

final_script = ''
for script_name in toLoad:
    with open(script_name, 'r') as f:
        final_script += ('\n' + f.read())
with open('engine.js', 'w') as f:
    f.write(final_script)
1
pyrospade 25 lipiec 2012, 23:10

Możesz to zrobić sam, ale jest to prawdziwy problem, że prawdziwe narzędzia rozwiązywają się bardziej wyrafinowane. Rozważ "Minifikację JavaScript", np. Korzystanie z http://developer.yahoo.com/yui/compressor/

1
dkamins 25 lipiec 2012, 23:28