Refactor out strip source map fn
Summary: Remove the duplicate function and centralise it as nikoant suggested. Reviewed By: fabiomassimo Differential Revision: D29548480 fbshipit-source-id: 3e931cc88198415017c557c6b7c81cb35c3f22c9
This commit is contained in:
committed by
Facebook GitHub Bot
parent
04616ad647
commit
0e1f8e45ec
@@ -10,3 +10,4 @@
|
||||
export {default as runBuild} from './runBuild';
|
||||
export {default as getWatchFolders} from './getWatchFolders';
|
||||
export {default as computePackageChecksum} from './computePackageChecksum';
|
||||
export {default as stripSourceMapComment} from './stripSourceMap';
|
||||
|
||||
@@ -13,6 +13,7 @@ import path from 'path';
|
||||
import fs from 'fs-extra';
|
||||
import {getInstalledPluginDetails} from 'flipper-plugin-lib';
|
||||
import {FileStore} from 'metro-cache';
|
||||
import stripSourceMapComment from './stripSourceMap';
|
||||
import os from 'os';
|
||||
|
||||
let metroDir: string | undefined;
|
||||
@@ -37,18 +38,6 @@ type Options = {
|
||||
sourceMapPath?: string | undefined;
|
||||
};
|
||||
|
||||
// Metro erroneously adds source map comments to the bottom of the file
|
||||
// which break checksums on CI environments where paths change and are generally
|
||||
// undesired. We manually strip the comment here and write the file back.
|
||||
async function stripSourceMapComment(out: string) {
|
||||
const lines = (await fs.readFile(out, 'utf-8')).split(os.EOL);
|
||||
const lastLine = lines[lines.length - 1];
|
||||
if (lastLine.startsWith('//# sourceMappingURL=')) {
|
||||
console.log(`Updating ${out} to remove sourceMapURL= comment.`);
|
||||
await fs.writeFile(out, lines.slice(0, lines.length - 1).join(os.EOL));
|
||||
}
|
||||
}
|
||||
|
||||
export default async function bundlePlugin(
|
||||
pluginDir: string,
|
||||
dev: boolean,
|
||||
|
||||
23
desktop/pkg-lib/src/stripSourceMap.ts
Normal file
23
desktop/pkg-lib/src/stripSourceMap.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
import os from 'os';
|
||||
import fs from 'fs-extra';
|
||||
|
||||
// Metro erroneously adds source map comments to the bottom of the file
|
||||
// which break checksums on CI environments where paths change and are generally
|
||||
// undesired. We manually strip the comment here and write the file back.
|
||||
export default async function stripSourceMapComment(out: string) {
|
||||
const lines = (await fs.readFile(out, 'utf-8')).split(os.EOL);
|
||||
const lastLine = lines[lines.length - 1];
|
||||
if (lastLine.startsWith('//# sourceMappingURL=')) {
|
||||
console.log(`Updating ${out} to remove sourceMapURL= comment.`);
|
||||
await fs.writeFile(out, lines.slice(0, lines.length - 1).join(os.EOL));
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,14 @@
|
||||
|
||||
import Metro from 'metro';
|
||||
import tmp from 'tmp';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import fs from 'fs-extra';
|
||||
import {spawn} from 'promisify-child-process';
|
||||
import {getWatchFolders, runBuild} from 'flipper-pkg-lib';
|
||||
import {
|
||||
getWatchFolders,
|
||||
runBuild,
|
||||
stripSourceMapComment,
|
||||
} from 'flipper-pkg-lib';
|
||||
import getAppWatchFolders from './get-app-watch-folders';
|
||||
import {
|
||||
getSourcePlugins,
|
||||
@@ -161,16 +164,6 @@ async function buildDefaultPlugins(defaultPlugins: InstalledPluginDetails[]) {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Share this with the runBuild util in pkg-lib.
|
||||
async function stripSourceMapComment(out: string) {
|
||||
const lines = (await fs.readFile(out, 'utf-8')).split(os.EOL);
|
||||
const lastLine = lines[lines.length - 1];
|
||||
if (lastLine.startsWith('//# sourceMappingURL=')) {
|
||||
console.log(`Updating ${out} to remove sourceMapURL= comment.`);
|
||||
await fs.writeFile(out, lines.slice(0, lines.length - 1).join(os.EOL));
|
||||
}
|
||||
}
|
||||
|
||||
const minifierConfig = {
|
||||
minifierPath: require.resolve('metro-minify-terser'),
|
||||
minifierConfig: {
|
||||
|
||||
Reference in New Issue
Block a user