Files
react-native-devtools-frontend/front_end/Images/rollup.config.js
T
Tim van der Lippe 727227900c Dynamically optimize svgs
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>
2021-06-10 10:09:30 +00:00

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;
}
}),
],
};