diff --git a/apps/remix-ide/src/app/plugins/code-format.ts b/apps/remix-ide/src/app/plugins/code-format.ts index ac8d970936..1d74cff422 100644 --- a/apps/remix-ide/src/app/plugins/code-format.ts +++ b/apps/remix-ide/src/app/plugins/code-format.ts @@ -1,12 +1,7 @@ 'use strict' import { Plugin } from '@remixproject/engine' -import prettier from 'prettier/standalone' import { Options } from 'prettier'; import sol from './code-format/index' -import * as ts from 'prettier/parser-typescript' -import * as babel from 'prettier/parser-babel' -import * as espree from 'prettier/parser-espree' -import * as yml from 'prettier/parser-yaml' import path from 'path' import yaml from 'js-yaml' import toml from 'toml' @@ -67,12 +62,28 @@ const defaultOptions = { export class CodeFormat extends Plugin { + prettier: any + ts: any + babel: any + espree: any + yml: any + sol: any + constructor() { super(profile) } async format(file: string) { + // lazy load + if (!this.prettier) { + this.prettier = await import('prettier/standalone') + this.ts = await import('prettier/parser-typescript') + this.babel = await import('prettier/parser-babel') + this.espree = await import('prettier/parser-espree') + this.yml = await import('prettier/parser-yaml') + } + try { const content = await this.call('fileManager', 'readFile', file) if (!content) return @@ -241,8 +252,8 @@ export class CodeFormat extends Plugin { } - const result = prettier.format(content, { - plugins: [sol as any, ts, babel, espree, yml], + const result = this.prettier.format(content, { + plugins: [sol as any, this.ts, this.babel, this.espree, this.yml], parser: parserName, ...options }) diff --git a/package.json b/package.json index b6505fde6b..4a734ac10c 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "merge": "^2.1.1", "npm-install-version": "^6.0.2", "path-browserify": "^1.0.1", - "prettier": "^2.7.1", + "prettier": "^2.8.4", "prettier-plugin-solidity": "^1.0.0-beta.24", "raw-loader": "^4.0.2", "react": "^17.0.2", diff --git a/yarn.lock b/yarn.lock index 5cd1986312..121dc5a01f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22237,10 +22237,10 @@ prettier-plugin-solidity@^1.0.0-beta.24: solidity-comments-extractor "^0.0.7" string-width "^4.2.3" -prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +prettier@^2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== pretty-format@^27.0.0: version "27.2.5"