简体   繁体   中英

How to concatenate several Javascript files into one file using Python

I would like to know how I can use Python to concatenate multiple Javascript files into just one file.

I am building a component based engine in Javascript, and I want to distribute it using just one file, for example, engine.js.

Alternatively, I'd like the users to get the whole source, which has a hierarchy of files and directories, and with the whole source they should get a build.py Python script, that can be edited to include various systems and components in it, which are basically .js files in components/ and systems/ directories.

How can I load files which are described in a list (paths) and combine them into one file?

For example:

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

The script should concatenate these in order.

Also, this is a Git project. Is there a way for the script to read the version of the program from Git and then write it as a comment at the beginning?

This will concatenate your files:

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

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

You may then output them as necessary, or write them using code similar to the following:

with open(file, 'w') as handle:
    handle.write(result)

How about something like this?

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)

You can do it yourself, but this is a real problem that real tools are solving more sophisticatedly. Consider "JavaScript Minification", eg using http://developer.yahoo.com/yui/compressor/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM