未验证 提交 9ac197d1 编写于 作者: J Johannes Rieken 提交者: GitHub

Merge pull request #101660 from microsoft/joh/compile-mem-check

Check RAM before compiling
...@@ -18,6 +18,7 @@ const reporter_1 = require("./reporter"); ...@@ -18,6 +18,7 @@ const reporter_1 = require("./reporter");
const util = require("./util"); const util = require("./util");
const fancyLog = require("fancy-log"); const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors"); const ansiColors = require("ansi-colors");
const os = require("os");
const watch = require('./watch'); const watch = require('./watch');
const reporter = reporter_1.createReporter(); const reporter = reporter_1.createReporter();
function getTypeScriptCompilerOptions(src) { function getTypeScriptCompilerOptions(src) {
...@@ -69,6 +70,9 @@ function createCompile(src, build, emitError) { ...@@ -69,6 +70,9 @@ function createCompile(src, build, emitError) {
} }
function compileTask(src, out, build) { function compileTask(src, out, build) {
return function () { return function () {
if (os.totalmem() < 4000000000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true); const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false); let generator = new MonacoGenerator(false);
......
...@@ -18,6 +18,7 @@ import { createReporter } from './reporter'; ...@@ -18,6 +18,7 @@ import { createReporter } from './reporter';
import * as util from './util'; import * as util from './util';
import * as fancyLog from 'fancy-log'; import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors'; import * as ansiColors from 'ansi-colors';
import * as os from 'os';
import ts = require('typescript'); import ts = require('typescript');
const watch = require('./watch'); const watch = require('./watch');
...@@ -81,6 +82,11 @@ function createCompile(src: string, build: boolean, emitError?: boolean) { ...@@ -81,6 +82,11 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream { export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream {
return function () { return function () {
if (os.totalmem() < 4_000_000_000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true); const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false); let generator = new MonacoGenerator(false);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册