mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-02 18:11:04 +08:00
Currently, we optimize our SVGs out-of-sync and have a Python script and PRESUBMIT check to make sure that the SVGs are correctly optimized. This means that the SVGs are duplicated in the Images folder and requires developers to install `svgo` on their command line, which could be using differing versions. Instead, we can optimize the SVG images (which is computationally cheap) during build time using the rollup-plugin-import-meta-assets and svgo packages. The rollup plugin traverses the required SVG image files and puts them and rewrites them to the Images/ folder (rather than in src/), while also allowing us to optimize them along the way. DISABLE_THIRD_PARTY_CHECK=Removing script from package.json R=jacktfranklin@chromium.org Bug: 1216402 Change-Id: Ieb6932b9a81753be5ecbccd00a5d84bd0efa23f8 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2939994 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
28 lines
806 B
JavaScript
28 lines
806 B
JavaScript
// Copyright 2021 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
import {importMetaAssets} from '@web/rollup-plugin-import-meta-assets';
|
|
import {optimize} from 'svgo';
|
|
|
|
// eslint-disable-next-line import/no-default-export
|
|
export default {
|
|
treeshake: false,
|
|
output: [{
|
|
format: 'esm',
|
|
assetFileNames: '[name][extname]',
|
|
}],
|
|
plugins:
|
|
[
|
|
importMetaAssets({
|
|
async transform(assetBuffer, assetPath) {
|
|
if (assetPath.endsWith('.svg')) {
|
|
const {data} = await optimize(assetBuffer.toString());
|
|
return data;
|
|
}
|
|
return null;
|
|
}
|
|
}),
|
|
],
|
|
};
|