mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 20:26:08 +00:00
Merge pull request #260466 from mjbvz/sick-marmoset
Convert esbuild scripts to modules
This commit is contained in:
@@ -511,12 +511,12 @@ function translatePackageJSON(packageJSON, packageNLSPath) {
|
||||
const extensionsPath = path_1.default.join(root, 'extensions');
|
||||
// Additional projects to run esbuild on. These typically build code for webviews
|
||||
const esbuildMediaScripts = [
|
||||
'markdown-language-features/esbuild-notebook.js',
|
||||
'markdown-language-features/esbuild-preview.js',
|
||||
'markdown-math/esbuild.js',
|
||||
'notebook-renderers/esbuild.js',
|
||||
'ipynb/esbuild.js',
|
||||
'simple-browser/esbuild-preview.js',
|
||||
'markdown-language-features/esbuild-notebook.mjs',
|
||||
'markdown-language-features/esbuild-preview.mjs',
|
||||
'markdown-math/esbuild.mjs',
|
||||
'notebook-renderers/esbuild.mjs',
|
||||
'ipynb/esbuild.mjs',
|
||||
'simple-browser/esbuild-preview.mjs',
|
||||
];
|
||||
async function webpackExtensions(taskName, isWatch, webpackConfigLocations) {
|
||||
const webpack = require('webpack');
|
||||
|
||||
@@ -561,12 +561,12 @@ const extensionsPath = path.join(root, 'extensions');
|
||||
|
||||
// Additional projects to run esbuild on. These typically build code for webviews
|
||||
const esbuildMediaScripts = [
|
||||
'markdown-language-features/esbuild-notebook.js',
|
||||
'markdown-language-features/esbuild-preview.js',
|
||||
'markdown-math/esbuild.js',
|
||||
'notebook-renderers/esbuild.js',
|
||||
'ipynb/esbuild.js',
|
||||
'simple-browser/esbuild-preview.js',
|
||||
'markdown-language-features/esbuild-notebook.mjs',
|
||||
'markdown-language-features/esbuild-preview.mjs',
|
||||
'markdown-math/esbuild.mjs',
|
||||
'notebook-renderers/esbuild.mjs',
|
||||
'ipynb/esbuild.mjs',
|
||||
'simple-browser/esbuild-preview.mjs',
|
||||
];
|
||||
|
||||
export async function webpackExtensions(taskName: string, isWatch: boolean, webpackConfigLocations: { configPath: string; outputRoot?: string }[]) {
|
||||
|
||||
@@ -15,8 +15,7 @@ import pluginJsdoc from 'eslint-plugin-jsdoc';
|
||||
import pluginHeader from 'eslint-plugin-header';
|
||||
pluginHeader.rules.header.meta.schema = false;
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const ignores = fs.readFileSync(path.join(__dirname, '.eslint-ignore'), 'utf8')
|
||||
const ignores = fs.readFileSync(path.join(import.meta.dirname, '.eslint-ignore'), 'utf8')
|
||||
.toString()
|
||||
.split(/\r\n|\n/)
|
||||
.filter(line => line && !line.startsWith('#'));
|
||||
|
||||
@@ -3,13 +3,11 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
|
||||
/**
|
||||
* @fileoverview Common build script for extension scripts used in in webviews.
|
||||
*/
|
||||
|
||||
const path = require('path');
|
||||
const esbuild = require('esbuild');
|
||||
import path from 'node:path';
|
||||
import esbuild from 'esbuild';
|
||||
|
||||
/**
|
||||
* @typedef {Partial<import('esbuild').BuildOptions> & {
|
||||
@@ -62,7 +60,7 @@ async function tryBuild(options, didBuild) {
|
||||
* @param {string[]} args
|
||||
* @param {(outDir: string) => unknown} [didBuild]
|
||||
*/
|
||||
module.exports.run = async function (config, args, didBuild) {
|
||||
export async function run(config, args, didBuild) {
|
||||
let outdir = config.outdir;
|
||||
const outputRootIndex = args.indexOf('--outputRoot');
|
||||
if (outputRootIndex >= 0) {
|
||||
@@ -84,10 +82,9 @@ module.exports.run = async function (config, args, didBuild) {
|
||||
const isWatch = args.indexOf('--watch') >= 0;
|
||||
if (isWatch) {
|
||||
await tryBuild(resolvedOptions, didBuild);
|
||||
|
||||
const watcher = require('@parcel/watcher');
|
||||
const watcher = await import('@parcel/watcher');
|
||||
watcher.subscribe(config.srcDir, () => tryBuild(resolvedOptions, didBuild));
|
||||
} else {
|
||||
return build(resolvedOptions, didBuild).catch(() => process.exit(1));
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -7,4 +7,4 @@ extension.webpack.config.js
|
||||
extension-browser.webpack.config.js
|
||||
package-lock.json
|
||||
.gitignore
|
||||
esbuild.js
|
||||
esbuild.*
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
//@ts-check
|
||||
// @ts-check
|
||||
import path from 'node:path';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const path = require('path');
|
||||
const srcDir = path.join(import.meta.dirname, 'notebook-src');
|
||||
const outDir = path.join(import.meta.dirname, 'notebook-out');
|
||||
|
||||
const srcDir = path.join(__dirname, 'notebook-src');
|
||||
const outDir = path.join(__dirname, 'notebook-out');
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: [
|
||||
path.join(srcDir, 'cellAttachmentRenderer.ts'),
|
||||
],
|
||||
@@ -158,7 +158,7 @@
|
||||
"scripts": {
|
||||
"compile": "npx gulp compile-extension:ipynb && npm run build-notebook",
|
||||
"watch": "npx gulp watch-extension:ipynb",
|
||||
"build-notebook": "node ./esbuild"
|
||||
"build-notebook": "node ./esbuild.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@enonic/fnv-plus": "^1.3.0",
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
const path = require('path');
|
||||
import path from 'path';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const srcDir = path.join(__dirname, 'notebook');
|
||||
const outDir = path.join(__dirname, 'notebook-out');
|
||||
const srcDir = path.join(import.meta.dirname, 'notebook');
|
||||
const outDir = path.join(import.meta.dirname, 'notebook-out');
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: [
|
||||
path.join(srcDir, 'index.ts'),
|
||||
],
|
||||
@@ -3,12 +3,13 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
const path = require('path');
|
||||
import path from 'path';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const srcDir = path.join(__dirname, 'preview-src');
|
||||
const outDir = path.join(__dirname, 'media');
|
||||
const srcDir = path.join(import.meta.dirname, 'preview-src');
|
||||
const outDir = path.join(import.meta.dirname, 'media');
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: [
|
||||
path.join(srcDir, 'index.ts'),
|
||||
path.join(srcDir, 'pre'),
|
||||
@@ -760,10 +760,10 @@
|
||||
"watch": "npm run build-preview && gulp watch-extension:markdown-language-features watch-extension:markdown-language-features-languageService",
|
||||
"vscode:prepublish": "npm run build-ext && npm run build-preview",
|
||||
"build-ext": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:markdown-language-features ./tsconfig.json",
|
||||
"build-notebook": "node ./esbuild-notebook",
|
||||
"build-preview": "node ./esbuild-preview",
|
||||
"build-notebook": "node ./esbuild-notebook.mjs",
|
||||
"build-preview": "node ./esbuild-preview.mjs",
|
||||
"compile-web": "npx webpack-cli --config extension-browser.webpack.config --mode none",
|
||||
"watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch --info-verbosity verbose"
|
||||
"watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vscode/extension-telemetry": "^0.9.8",
|
||||
|
||||
@@ -2,7 +2,7 @@ src/**
|
||||
notebook/**
|
||||
extension-browser.webpack.config.js
|
||||
extension.webpack.config.js
|
||||
esbuild.js
|
||||
esbuild.*
|
||||
cgmanifest.json
|
||||
package-lock.json
|
||||
webpack.config.js
|
||||
|
||||
@@ -4,20 +4,21 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
//@ts-check
|
||||
|
||||
const path = require('path');
|
||||
const fse = require('fs-extra');
|
||||
import path from 'path';
|
||||
import fse from 'fs-extra';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
const srcDir = path.join(__dirname, 'notebook');
|
||||
const outDir = path.join(__dirname, 'notebook-out');
|
||||
const srcDir = path.join(import.meta.dirname, 'notebook');
|
||||
const outDir = path.join(import.meta.dirname, 'notebook-out');
|
||||
|
||||
function postBuild(outDir) {
|
||||
fse.copySync(
|
||||
path.join(__dirname, 'node_modules', 'katex', 'dist', 'katex.min.css'),
|
||||
path.join(import.meta.dirname, 'node_modules', 'katex', 'dist', 'katex.min.css'),
|
||||
path.join(outDir, 'katex.min.css'));
|
||||
|
||||
const fontsDir = path.join(__dirname, 'node_modules', 'katex', 'dist', 'fonts');
|
||||
const fontsDir = path.join(import.meta.dirname, 'node_modules', 'katex', 'dist', 'fonts');
|
||||
const fontsOutDir = path.join(outDir, 'fonts/');
|
||||
|
||||
fse.mkdirSync(fontsOutDir, { recursive: true });
|
||||
@@ -29,7 +30,7 @@ function postBuild(outDir) {
|
||||
}
|
||||
}
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: [
|
||||
path.join(srcDir, 'katex.ts'),
|
||||
],
|
||||
@@ -108,7 +108,7 @@
|
||||
"scripts": {
|
||||
"compile": "npm run build-notebook",
|
||||
"watch": "npm run build-notebook",
|
||||
"build-notebook": "node ./esbuild"
|
||||
"build-notebook": "node ./esbuild.mjs"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/markdown-it": "^0.0.0",
|
||||
|
||||
@@ -2,5 +2,5 @@ src/**
|
||||
notebook/**
|
||||
tsconfig.json
|
||||
.gitignore
|
||||
esbuild.js
|
||||
esbuild.*
|
||||
src/**
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
const path = require('path');
|
||||
import path from 'path';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const srcDir = path.join(__dirname, 'src');
|
||||
const outDir = path.join(__dirname, 'renderer-out');
|
||||
const srcDir = path.join(import.meta.dirname, 'src');
|
||||
const outDir = path.join(import.meta.dirname, 'renderer-out');
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: [
|
||||
path.join(srcDir, 'index.ts'),
|
||||
],
|
||||
@@ -44,7 +44,7 @@
|
||||
"scripts": {
|
||||
"compile": "npx gulp compile-extension:notebook-renderers && npm run build-notebook",
|
||||
"watch": "npx gulp compile-watch:notebook-renderers",
|
||||
"build-notebook": "node ./esbuild"
|
||||
"build-notebook": "node ./esbuild.mjs"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -11,4 +11,4 @@ cgmanifest.json
|
||||
package-lock.json
|
||||
preview-src/**
|
||||
webpack.config.js
|
||||
esbuild-preview.js
|
||||
esbuild-*
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// @ts-check
|
||||
const path = require('path');
|
||||
import path from 'path';
|
||||
import { run } from '../esbuild-webview-common.mjs';
|
||||
|
||||
const srcDir = path.join(__dirname, 'preview-src');
|
||||
const outDir = path.join(__dirname, 'media');
|
||||
const srcDir = path.join(import.meta.dirname, 'preview-src');
|
||||
const outDir = path.join(import.meta.dirname, 'media');
|
||||
|
||||
require('../esbuild-webview-common').run({
|
||||
run({
|
||||
entryPoints: {
|
||||
'index': path.join(srcDir, 'index.ts'),
|
||||
'codicon': path.join(__dirname, 'node_modules', '@vscode', 'codicons', 'dist', 'codicon.css'),
|
||||
'codicon': path.join(import.meta.dirname, 'node_modules', '@vscode', 'codicons', 'dist', 'codicon.css'),
|
||||
},
|
||||
srcDir,
|
||||
outdir: outDir,
|
||||
@@ -61,7 +61,7 @@
|
||||
"watch": "npm run build-preview && gulp watch-extension:markdown-language-features",
|
||||
"vscode:prepublish": "npm run build-ext && npm run build-preview",
|
||||
"build-ext": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:markdown-language-features ./tsconfig.json",
|
||||
"build-preview": "node ./esbuild-preview",
|
||||
"build-preview": "node ./esbuild-preview.mjs",
|
||||
"compile-web": "npx webpack-cli --config extension-browser.webpack.config --mode none",
|
||||
"watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch --info-verbosity verbose"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user