run webpack in code-dev
This commit is contained in:
parent
f9bb157b09
commit
d1a3e6ede6
5
.vscode/launch.json
vendored
5
.vscode/launch.json
vendored
|
@ -217,10 +217,7 @@
|
|||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "VS Code (Web)",
|
||||
"runtimeExecutable": "yarn",
|
||||
"runtimeArgs": [
|
||||
"web"
|
||||
],
|
||||
"program": "${workspaceFolder}/scripts/code-web.js",
|
||||
"presentation": {
|
||||
"group": "0_vscode",
|
||||
"order": 2
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { ExtensionContext, window } from 'vscode';
|
||||
//import { startClient } from '../cssClient';
|
||||
|
||||
// this method is called when vs code is activated
|
||||
export function activate(_context: ExtensionContext) {
|
||||
|
||||
window.showInformationMessage('cssClientBrowserMain.ts running');
|
||||
|
||||
//startClient(context, {});
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
//@ts-check
|
||||
|
||||
'use strict';
|
||||
|
||||
const withDefaults = require('../shared.webpack.config');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = withDefaults({
|
||||
target: 'webworker',
|
||||
context: path.join(__dirname, 'client'),
|
||||
entry: {
|
||||
extension: './src/browser/cssClientBrowserMain.ts',
|
||||
},
|
||||
output: {
|
||||
filename: 'cssClientBrowserMain.js',
|
||||
path: path.join(__dirname, 'client', 'dist', 'browser')
|
||||
}
|
||||
});
|
|
@ -16,6 +16,7 @@
|
|||
"onCommand:_css.applyCodeAction"
|
||||
],
|
||||
"main": "./client/out/node/cssClientMain",
|
||||
"browser": "./client/dist/browser/cssClientBrowserMain",
|
||||
"enableProposedApi": true,
|
||||
"scripts": {
|
||||
"compile": "gulp compile-extension:css-language-features-client compile-extension:css-language-features-server",
|
||||
|
|
|
@ -701,7 +701,7 @@ to-regex-range@^5.0.1:
|
|||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
vscode-css-languageservice@^4.3.0-next.0:
|
||||
vscode-css-languageservice@4.3.0-next.0:
|
||||
version "4.3.0-next.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.0-next.0.tgz#70ca6e192e1d7fb904867e696851b14401da9573"
|
||||
integrity sha512-OwYavU+gqocK3YQi484CrGkGMMRRmzJdeNMfgAr/SssKJVJuvkLec7NbAopM42KTE6OPaqU3AFgI5AMERmIJ4A==
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"onFileSystem:memfs",
|
||||
"onDebug"
|
||||
],
|
||||
"main": "./out/extension",
|
||||
"browser": "./out/extension",
|
||||
"engines": {
|
||||
"vscode": "^1.25.0"
|
||||
},
|
||||
|
|
|
@ -15,6 +15,8 @@ const util = require('util');
|
|||
const opn = require('opn');
|
||||
const minimist = require('minimist');
|
||||
|
||||
const webpack = require("webpack");
|
||||
|
||||
const APP_ROOT = path.dirname(__dirname);
|
||||
const EXTENSIONS_ROOT = path.join(APP_ROOT, 'extensions');
|
||||
const WEB_MAIN = path.join(APP_ROOT, 'src', 'vs', 'code', 'browser', 'workbench', 'workbench-dev.html');
|
||||
|
@ -140,30 +142,42 @@ function handleStaticExtension(req, res, parsedUrl) {
|
|||
*/
|
||||
async function handleRoot(req, res) {
|
||||
const extensionFolders = await util.promisify(fs.readdir)(EXTENSIONS_ROOT);
|
||||
const mapExtensionFolderToExtensionPackageJSON = new Map();
|
||||
|
||||
const staticExtensions = [];
|
||||
|
||||
const webpackConfigs = [];
|
||||
|
||||
await Promise.all(extensionFolders.map(async extensionFolder => {
|
||||
try {
|
||||
const packageJSON = JSON.parse((await util.promisify(fs.readFile)(path.join(EXTENSIONS_ROOT, extensionFolder, 'package.json'))).toString());
|
||||
if (packageJSON.main && packageJSON.name !== 'vscode-web-playground') {
|
||||
if (packageJSON.main && !packageJSON.browser) {
|
||||
return; // unsupported
|
||||
}
|
||||
packageJSON.extensionKind = ['web']; // enable for Web
|
||||
if (packageJSON.browser) {
|
||||
packageJSON.main = packageJSON.browser;
|
||||
const webpackConfigPath = path.join(EXTENSIONS_ROOT, extensionFolder, 'extension-browser.webpack.config.js');
|
||||
if ((await util.promisify(fs.exists)(webpackConfigPath))) {
|
||||
webpackConfigs.push(require(webpackConfigPath));
|
||||
packageJSON.main.replace('/out/', '/dist/');
|
||||
}
|
||||
}
|
||||
|
||||
mapExtensionFolderToExtensionPackageJSON.set(extensionFolder, packageJSON);
|
||||
packageJSON.extensionKind = ['web']; // enable for Web
|
||||
staticExtensions.push({
|
||||
packageJSON,
|
||||
extensionLocation: { scheme: SCHEME, authority: AUTHORITY, path: `/static-extension/${extensionFolder}` }
|
||||
});
|
||||
} catch (error) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
|
||||
const staticExtensions = [];
|
||||
|
||||
// Built in extensions
|
||||
mapExtensionFolderToExtensionPackageJSON.forEach((packageJSON, extensionFolder) => {
|
||||
staticExtensions.push({
|
||||
packageJSON,
|
||||
extensionLocation: { scheme: SCHEME, authority: AUTHORITY, path: `/static-extension/${extensionFolder}` }
|
||||
});
|
||||
webpack(webpackConfigs).watch({}, (err, stats) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
console.log(stats.toString());
|
||||
}
|
||||
});
|
||||
|
||||
const webConfiguration = escapeAttribute(JSON.stringify({ staticExtensions, folderUri: { scheme: 'memfs', path: `/sample-folder` }}));
|
||||
|
|
Loading…
Reference in a new issue