提交 2a29c3b6 编写于 作者: J Joao Moreno

gulpfiles into build

fixes #196
上级 3c12981e
......@@ -13,8 +13,8 @@ var es = require('event-stream');
var concat = require('gulp-concat');
var File = require('vinyl');
var underscore = require('underscore');
var bundle = require('./build/lib/bundle');
var util = require('./build/lib/util');
var bundle = require('./lib/bundle');
var util = require('./lib/util');
var tsOptions = {
target: 'ES5',
......@@ -23,7 +23,7 @@ var tsOptions = {
preserveConstEnums: true,
experimentalDecorators: true,
sourceMap: true,
rootDir: path.join(__dirname, 'src')
rootDir: path.join(path.dirname(__dirname), 'src')
};
exports.loaderConfig = function (emptyPaths) {
......@@ -66,7 +66,7 @@ function toBundleStream(bundles) {
return es.merge(bundles.map(function(bundle) {
var useSourcemaps = /\.js$/.test(bundle.dest) && !/\.nls\.js$/.test(bundle.dest);
var sources = bundle.sources.map(function(source) {
var root = source.path ? __dirname.replace(/\\/g, '/') : '';
var root = source.path ? path.dirname(__dirname).replace(/\\/g, '/') : '';
var base = source.path ? root + '/out-build' : '';
return new File({
......
......@@ -4,12 +4,13 @@
*--------------------------------------------------------------------------------------------*/
var gulp = require('gulp');
var path = require('path');
var rename = require('gulp-rename');
var filter = require('gulp-filter');
var _ = require('underscore');
var es = require('event-stream');
var buildfile = require('./src/buildfile');
var util = require('./build/lib/util');
var buildfile = require('../src/buildfile');
var util = require('./lib/util');
var common = require('./gulpfile.common');
// Build
......@@ -73,6 +74,8 @@ gulp.task('minify-editor-ossfree', ['clean-minified-editor-ossfree', 'optimize-e
// Package
var root = path.dirname(__dirname);
function editorTask(out, dest) {
return function () {
return gulp.src(out + '/**', { base: out })
......@@ -81,18 +84,18 @@ function editorTask(out, dest) {
};
}
gulp.task('clean-editor', util.rimraf('../Monaco-Editor-Build'));
gulp.task('clean-editor', util.rimraf(path.join(path.dirname(root), 'Monaco-Editor-Build')));
gulp.task('editor', ['clean-editor', 'optimize-editor'],
editorTask('out-editor', '../Monaco-Editor-Build'));
editorTask('out-editor', path.join(path.dirname(root), 'Monaco-Editor-Build')));
gulp.task('clean-editor-min', util.rimraf('../Monaco-Editor-Build-Min'));
gulp.task('clean-editor-min', util.rimraf(path.join(path.dirname(root), 'Monaco-Editor-Build-Min')));
gulp.task('editor-min', ['clean-editor-min', 'minify-editor'],
editorTask('out-editor-min', '../Monaco-Editor-Build-Min'));
editorTask('out-editor-min', path.join(path.dirname(root), 'Monaco-Editor-Build-Min')));
gulp.task('clean-editor-ossfree', util.rimraf('../Monaco-Editor-Build-OSS-Free'));
gulp.task('clean-editor-ossfree', util.rimraf(path.join(path.dirname(root), 'Monaco-Editor-Build-OSS-Free')));
gulp.task('editor-ossfree', ['clean-editor-ossfree', 'optimize-editor-ossfree'],
editorTask('out-editor-ossfree', '../Monaco-Editor-Build-OSS-Free'));
editorTask('out-editor-ossfree', path.join(path.dirname(root), 'Monaco-Editor-Build-OSS-Free')));
gulp.task('clean-editor-ossfree-min', util.rimraf('../Monaco-Editor-Build-OSS-Free-Min'));
gulp.task('clean-editor-ossfree-min', util.rimraf(path.join(path.dirname(root), 'Monaco-Editor-Build-OSS-Free-Min')));
gulp.task('editor-ossfree-min', ['clean-editor-ossfree-min', 'minify-editor-ossfree'],
editorTask('out-editor-ossfree-min', '../Monaco-Editor-Build-OSS-Free-Min'));
editorTask('out-editor-ossfree-min', path.join(path.dirname(root), 'Monaco-Editor-Build-OSS-Free-Min')));
......@@ -14,13 +14,15 @@ var cp = require('child_process');
var filter = require('gulp-filter');
var rename = require('gulp-rename');
var rimraf = require('rimraf');
var util = require('./build/lib/util');
var watcher = require('./build/lib/watch');
var createReporter = require('./build/lib/reporter');
var util = require('./lib/util');
var watcher = require('./lib/watch');
var createReporter = require('./lib/reporter');
var glob = require('glob');
var fs = require('fs');
var JSONC = require('json-comments');
var extensionsPath = path.join(path.dirname(__dirname), 'extensions');
function getTSConfig(plugin) {
var script = (plugin.desc && plugin.desc.scripts && plugin.desc.scripts['vscode:prepublish']) || '';
var match = /^node \.\.\/\.\.\/node\_modules\/gulp\/bin\/gulp\.js \-\-gulpfile \.\.\/\.\.\/gulpfile\.plugins\.js compile-plugin:([^ ]+) ?(.*tsconfig\.json)?/.exec(script);
......@@ -29,7 +31,7 @@ function getTSConfig(plugin) {
return;
}
var pluginRoot = path.join(__dirname, 'extensions', plugin.desc.name);
var pluginRoot = path.join(extensionsPath, plugin.desc.name);
if (match[2]) {
return path.join(pluginRoot, match[2]);
......@@ -49,7 +51,7 @@ function getTSConfig(plugin) {
function noop() {}
function readAllPlugins() {
var PLUGINS_FOLDER = path.join(__dirname, 'extensions');
var PLUGINS_FOLDER = path.join(extensionsPath);
var extensions = glob.sync('*/package.json', {
cwd: PLUGINS_FOLDER
......@@ -75,7 +77,7 @@ function readAllPlugins() {
var tasks = readAllPlugins()
.map(function (plugin) {
var name = plugin.desc.name;
var pluginRoot = path.join(__dirname, 'extensions', name);
var pluginRoot = path.join(extensionsPath, name);
var clean = 'clean-plugin:' + name;
var compile = 'compile-plugin:' + name;
......@@ -91,8 +93,8 @@ var tasks = readAllPlugins()
}
var options = getTSConfig(plugin);
if (options) {
var sources = 'extensions/' + name + '/src/**';
var deps = [
'src/vs/vscode.d.ts',
......@@ -121,8 +123,8 @@ var tasks = readAllPlugins()
})();
var sourcesRoot = path.join(pluginRoot, 'src');
var sourcesOpts = { cwd: __dirname, base: sourcesRoot };
var depsOpts = { cwd: __dirname };
var sourcesOpts = { cwd: path.dirname(__dirname), base: sourcesRoot };
var depsOpts = { cwd: path.dirname(__dirname) };
gulp.task(clean, function (cb) {
rimraf(path.join(pluginRoot, 'out'), cb);
......
......@@ -20,11 +20,12 @@ var remote = require('gulp-remote-src');
var File = require('vinyl');
var rimraf = require('rimraf');
var _ = require('underscore');
var packagejson = require('./package.json');
var util = require('./build/lib/util');
var buildfile = require('./src/buildfile');
var packagejson = require('../package.json');
var util = require('./lib/util');
var buildfile = require('../src/buildfile');
var common = require('./gulpfile.common');
var commit = process.env['BUILD_SOURCEVERSION'] || require('./build/lib/git').getVersion(__dirname);
var root = path.dirname(__dirname);
var commit = process.env['BUILD_SOURCEVERSION'] || require('./lib/git').getVersion(root);
var baseModules = [
'app', 'applicationinsights', 'assert', 'auto-updater', 'browser-window',
......@@ -82,12 +83,8 @@ gulp.task('clean-minified-vscode', util.rimraf('out-vscode-min'));
gulp.task('minify-vscode', ['clean-minified-vscode', 'optimize-vscode'], common.minifyTask('out-vscode'));
// Package
var product = JSON.parse(fs.readFileSync(path.join(__dirname, 'product.json'), 'utf8'));
var darwinCreditsTemplate;
if (product.darwinCredits) {
darwinCreditsTemplate = _.template(fs.readFileSync(path.join(__dirname, product.darwinCredits), 'utf8'));
}
var product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
var darwinCreditsTemplate = product.darwinCredits && _.template(fs.readFileSync(path.join(root, product.darwinCredits), 'utf8'));
var config = {
version: packagejson.electronVersion,
......@@ -106,7 +103,7 @@ var config = {
gulp.task('electron', function () {
// Force windows to use ia32
var arch = (process.platform === 'win32' ? 'ia32' : process.arch);
return electron.dest('../Electron-Build', _.extend({}, config, { arch: arch }));
return electron.dest(path.join(path.dirname(root), 'Electron-Build'), _.extend({}, config, { arch: arch }));
});
function mixinProduct() {
......@@ -136,7 +133,7 @@ function mixinProduct() {
function packageTask(platform, arch, opts) {
opts = opts || {};
var destination = '../VSCode' + (platform ? '-' + platform : '') + (arch ? '-' + arch : '');
var destination = path.join(path.dirname(root), 'VSCode') + (platform ? '-' + platform : '') + (arch ? '-' + arch : '');
platform = platform || process.platform;
arch = platform === 'win32' ? 'ia32' : arch;
......@@ -214,10 +211,10 @@ function packageTask(platform, arch, opts) {
};
}
gulp.task('clean-vscode-win32', util.rimraf('../VSCode-win32'));
gulp.task('clean-vscode-darwin', util.rimraf('../VSCode-darwin'));
gulp.task('clean-vscode-linux-ia32', util.rimraf('../VSCode-linux-ia32'));
gulp.task('clean-vscode-linux-x64', util.rimraf('../VSCode-linux-x64'));
gulp.task('clean-vscode-win32', util.rimraf(path.join(path.dirname(root), 'VSCode-win32')));
gulp.task('clean-vscode-darwin', util.rimraf(path.join(path.dirname(root), 'VSCode-darwin')));
gulp.task('clean-vscode-linux-ia32', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-ia32')));
gulp.task('clean-vscode-linux-x64', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-x64')));
gulp.task('vscode-win32', ['optimize-vscode', 'clean-vscode-win32'], packageTask('win32'));
gulp.task('vscode-darwin', ['optimize-vscode', 'clean-vscode-darwin'], packageTask('darwin'));
......
......@@ -205,6 +205,6 @@ gulp.task('mixin', function () {
.pipe(gulp.dest('.'));
});
require('./gulpfile.vscode');
require('./gulpfile.editor');
require('./gulpfile.plugins');
require('./build/gulpfile.vscode');
require('./build/gulpfile.editor');
require('./build/gulpfile.plugins');
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册