mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-14 23:18:36 +00:00
Get codicons from node module (#289705)
* Revert "Revert codicon change (#289683)"
This reverts commit de6f371a92.
* Always run postinstall
* Two more places
* Move codicon copy into compilation
* Fix pipelines
* Update readme
* Fix watch task
* Move copy codicons
* MIssed some spots
* Error handing
* Fix path
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -6,6 +6,7 @@ node_modules/
|
||||
.build/
|
||||
.vscode/extensions/**/out/
|
||||
extensions/**/dist/
|
||||
src/vs/base/browser/ui/codicons/codicon/codicon.ttf
|
||||
/out*/
|
||||
/extensions/**/out/
|
||||
build/node_modules
|
||||
|
||||
@@ -19,9 +19,9 @@ function makeCompileBuildTask(disableMangle: boolean) {
|
||||
}
|
||||
|
||||
// Local/PR compile, including nls and inline sources in sourcemaps, minification, no mangling
|
||||
export const compileBuildWithoutManglingTask = task.define('compile-build-without-mangling', makeCompileBuildTask(true));
|
||||
export const compileBuildWithoutManglingTask = task.define('compile-build-without-mangling', task.series(compilation.copyCodiconsTask, makeCompileBuildTask(true)));
|
||||
gulp.task(compileBuildWithoutManglingTask);
|
||||
|
||||
// CI compile, including nls and inline sources in sourcemaps, mangling, minification, for build
|
||||
export const compileBuildWithManglingTask = task.define('compile-build-with-mangling', makeCompileBuildTask(false));
|
||||
export const compileBuildWithManglingTask = task.define('compile-build-with-mangling', task.series(compilation.copyCodiconsTask, makeCompileBuildTask(false)));
|
||||
gulp.task(compileBuildWithManglingTask);
|
||||
|
||||
@@ -36,6 +36,14 @@ const BUNDLED_FILE_HEADER = [
|
||||
].join('\n');
|
||||
|
||||
const extractEditorSrcTask = task.define('extract-editor-src', () => {
|
||||
// Ensure codicon.ttf is copied from node_modules (needed when node_modules is cached and postinstall doesn't run)
|
||||
const codiconSource = path.join(root, 'node_modules', '@vscode', 'codicons', 'dist', 'codicon.ttf');
|
||||
const codiconDest = path.join(root, 'src', 'vs', 'base', 'browser', 'ui', 'codicons', 'codicon', 'codicon.ttf');
|
||||
if (fs.existsSync(codiconSource)) {
|
||||
fs.mkdirSync(path.dirname(codiconDest), { recursive: true });
|
||||
fs.copyFileSync(codiconSource, codiconDest);
|
||||
}
|
||||
|
||||
const apiusages = monacoapi.execute().usageContent;
|
||||
const extrausages = fs.readFileSync(path.join(root, 'build', 'monaco', 'monaco.usage.recipe')).toString();
|
||||
standalone.extractEditor({
|
||||
|
||||
@@ -31,10 +31,10 @@ const transpileClientTask = task.define('transpile-client', task.series(util.rim
|
||||
gulp.task(transpileClientTask);
|
||||
|
||||
// Fast compile for development time
|
||||
const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), compileApiProposalNamesTask, compileTask('src', 'out', false)));
|
||||
const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), compilation.copyCodiconsTask, compileApiProposalNamesTask, compileTask('src', 'out', false)));
|
||||
gulp.task(compileClientTask);
|
||||
|
||||
const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), task.parallel(watchTask('out', false), watchApiProposalNamesTask)));
|
||||
const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), task.parallel(watchTask('out', false), watchApiProposalNamesTask, compilation.watchCodiconsTask)));
|
||||
gulp.task(watchClientTask);
|
||||
|
||||
// All
|
||||
|
||||
@@ -356,3 +356,34 @@ export const watchApiProposalNamesTask = task.define('watch-api-proposal-names',
|
||||
.pipe(util.debounce(task))
|
||||
.pipe(gulp.dest('src'));
|
||||
});
|
||||
|
||||
// Codicons
|
||||
const root = path.dirname(path.dirname(import.meta.dirname));
|
||||
const codiconSource = path.join(root, 'node_modules', '@vscode', 'codicons', 'dist', 'codicon.ttf');
|
||||
const codiconDest = path.join(root, 'src', 'vs', 'base', 'browser', 'ui', 'codicons', 'codicon', 'codicon.ttf');
|
||||
|
||||
function copyCodiconsImpl() {
|
||||
try {
|
||||
if (fs.existsSync(codiconSource)) {
|
||||
fs.mkdirSync(path.dirname(codiconDest), { recursive: true });
|
||||
fs.copyFileSync(codiconSource, codiconDest);
|
||||
} else {
|
||||
fancyLog(ansiColors.red('[codicons]'), `codicon.ttf not found in node_modules. Please run 'npm install' to install dependencies.`);
|
||||
}
|
||||
} catch (e) {
|
||||
fancyLog(ansiColors.red('[codicons]'), `Error copying codicon.ttf: ${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
export const copyCodiconsTask = task.define('copy-codicons', () => {
|
||||
copyCodiconsImpl();
|
||||
return Promise.resolve();
|
||||
});
|
||||
gulp.task(copyCodiconsTask);
|
||||
|
||||
export const watchCodiconsTask = task.define('watch-codicons', () => {
|
||||
copyCodiconsImpl();
|
||||
return watch('node_modules/@vscode/codicons/dist/**', { readDelay: 200 })
|
||||
.on('data', () => copyCodiconsImpl());
|
||||
});
|
||||
gulp.task(watchCodiconsTask);
|
||||
|
||||
7
package-lock.json
generated
7
package-lock.json
generated
@@ -15,6 +15,7 @@
|
||||
"@microsoft/1ds-post-js": "^3.2.13",
|
||||
"@parcel/watcher": "^2.5.6",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@vscode/codicons": "^0.0.44",
|
||||
"@vscode/deviceid": "^0.1.1",
|
||||
"@vscode/iconv-lite-umd": "0.7.1",
|
||||
"@vscode/native-watchdog": "^1.4.6",
|
||||
@@ -2945,6 +2946,12 @@
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@vscode/codicons": {
|
||||
"version": "0.0.44",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.44.tgz",
|
||||
"integrity": "sha512-F7qPRumUK3EHjNdopfICLGRf3iNPoZQt+McTHAn4AlOWPB3W2kL4H0S7uqEqbyZ6rCxaeDjpAn3MCUnwTu/VJQ==",
|
||||
"license": "CC-BY-4.0"
|
||||
},
|
||||
"node_modules/@vscode/deviceid": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/deviceid/-/deviceid-0.1.4.tgz",
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
"@microsoft/1ds-post-js": "^3.2.13",
|
||||
"@parcel/watcher": "^2.5.6",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@vscode/codicons": "^0.0.44",
|
||||
"@vscode/deviceid": "^0.1.1",
|
||||
"@vscode/iconv-lite-umd": "0.7.1",
|
||||
"@vscode/native-watchdog": "^1.4.6",
|
||||
|
||||
7
remote/web/package-lock.json
generated
7
remote/web/package-lock.json
generated
@@ -10,6 +10,7 @@
|
||||
"dependencies": {
|
||||
"@microsoft/1ds-core-js": "^3.2.13",
|
||||
"@microsoft/1ds-post-js": "^3.2.13",
|
||||
"@vscode/codicons": "^0.0.44",
|
||||
"@vscode/iconv-lite-umd": "0.7.1",
|
||||
"@vscode/tree-sitter-wasm": "^0.3.0",
|
||||
"@vscode/vscode-languagedetection": "1.0.21",
|
||||
@@ -71,6 +72,12 @@
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz",
|
||||
"integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ=="
|
||||
},
|
||||
"node_modules/@vscode/codicons": {
|
||||
"version": "0.0.44",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.44.tgz",
|
||||
"integrity": "sha512-F7qPRumUK3EHjNdopfICLGRf3iNPoZQt+McTHAn4AlOWPB3W2kL4H0S7uqEqbyZ6rCxaeDjpAn3MCUnwTu/VJQ==",
|
||||
"license": "CC-BY-4.0"
|
||||
},
|
||||
"node_modules/@vscode/iconv-lite-umd": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.1.tgz",
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"dependencies": {
|
||||
"@microsoft/1ds-core-js": "^3.2.13",
|
||||
"@microsoft/1ds-post-js": "^3.2.13",
|
||||
"@vscode/codicons": "^0.0.44",
|
||||
"@vscode/iconv-lite-umd": "0.7.1",
|
||||
"@vscode/tree-sitter-wasm": "^0.3.0",
|
||||
"@vscode/vscode-languagedetection": "1.0.21",
|
||||
|
||||
5
src/vs/base/browser/ui/codicons/codicon/README.md
Normal file
5
src/vs/base/browser/ui/codicons/codicon/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Codicons
|
||||
|
||||
## Where does the codicon.ttf come from?
|
||||
|
||||
It is added via the `@vscode/codicons` npm package, then copied to this directory during compile time.
|
||||
Binary file not shown.
Reference in New Issue
Block a user