from os import system, mkdir from re import findall from sys import argv import requests def npm_create_package_lock_file(package): system("npm i --package-lock-only " + package) def get_all_urls_packages(): with open("package-lock.json", "rt") as package_lock_file: content = package_lock_file.read() return list(dict.fromkeys(findall("https://.+.tgz", content))) def download_npm_package(url:str, path="./"): try: with open(path + url.split("/")[-1], "wb") as npm_package_file: npm_package_file.write(requests.get(url)) except: raise "Path not exist!\nPlease create the path: " + path def download_all_package(): packages_urls = get_all_urls_packages() for package_url in packages_urls: download_npm_package(package_url, "npm-packages/") def main(): npm_create_package_lock_file(argv[1]) urls_packages = get_all_urls_packages() if __name__ == "__main__": main()