fix(build): copy files that are included in html files to the same folder
This is e.g. needed to allow Dart benchmarks to be served via `pub`
This commit is contained in:
parent
81a5ae8f6e
commit
9c9769e3dd
77
gulpfile.js
77
gulpfile.js
@ -35,13 +35,14 @@ var _COMPILER_CONFIG_JS_DEFAULT = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var _HTLM_DEFAULT_SCRIPTS_JS = [
|
var _HTLM_DEFAULT_SCRIPTS_JS = [
|
||||||
{src: '../../traceur-runtime.js', mimeType: 'text/javascript'},
|
{src: gulpTraceur.RUNTIME_PATH, mimeType: 'text/javascript', copy: true},
|
||||||
{src: '../../es6-module-loader-sans-promises.src.js', mimeType: 'text/javascript'},
|
{src: 'node_modules/es6-module-loader/dist/es6-module-loader-sans-promises.src.js',
|
||||||
{src: '../../zone.js', mimeType: 'text/javascript'},
|
mimeType: 'text/javascript', copy: true},
|
||||||
{src: '../../long-stack-trace-zone.js', mimeType: 'text/javascript'},
|
{src: 'node_modules/zone.js/zone.js', mimeType: 'text/javascript', copy: true},
|
||||||
{src: '../../system.src.js', mimeType: 'text/javascript'},
|
{src: 'node_modules/zone.js/long-stack-trace-zone.js', mimeType: 'text/javascript', copy: true},
|
||||||
{src: '../../extension-register.js', mimeType: 'text/javascript'},
|
{src: 'node_modules/systemjs/dist/system.src.js', mimeType: 'text/javascript', copy: true},
|
||||||
{src: '../../runtime_paths.js', mimeType: 'text/javascript'},
|
{src: 'node_modules/systemjs/lib/extension-register.js', mimeType: 'text/javascript', copy: true},
|
||||||
|
{src: 'tools/build/snippets/runtime_paths.js', mimeType: 'text/javascript', copy: true},
|
||||||
{
|
{
|
||||||
inline: 'System.import(\'$MODULENAME$\').then(function(m) { m.main(); }, console.error.bind(console))',
|
inline: 'System.import(\'$MODULENAME$\').then(function(m) { m.main(); }, console.error.bind(console))',
|
||||||
mimeType: 'text/javascript'
|
mimeType: 'text/javascript'
|
||||||
@ -87,18 +88,6 @@ var SRC_FOLDER_INSERTION = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var ES5_DEPS = [
|
|
||||||
gulpTraceur.RUNTIME_PATH,
|
|
||||||
'node_modules/es6-module-loader/dist/es6-module-loader-sans-promises.src.js',
|
|
||||||
'node_modules/systemjs/dist/system.src.js',
|
|
||||||
'node_modules/systemjs/lib/extension-register.js',
|
|
||||||
'node_modules/zone.js/zone.js',
|
|
||||||
'node_modules/zone.js/long-stack-trace-zone.js',
|
|
||||||
'tools/build/snippets/runtime_paths.js',
|
|
||||||
'tools/build/snippets/url_params_to_form.js',
|
|
||||||
'node_modules/angular/angular.js'
|
|
||||||
];
|
|
||||||
|
|
||||||
var CONFIG = {
|
var CONFIG = {
|
||||||
dest: {
|
dest: {
|
||||||
js: {
|
js: {
|
||||||
@ -194,26 +183,13 @@ var CONFIG = {
|
|||||||
es6: {
|
es6: {
|
||||||
src: ['tools/build/es5build.js'],
|
src: ['tools/build/es5build.js'],
|
||||||
pipes: {}
|
pipes: {}
|
||||||
},
|
|
||||||
es5: {
|
|
||||||
src: ES5_DEPS,
|
|
||||||
pipes: {}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
prod: {
|
prod: {
|
||||||
es6: {
|
es6: {
|
||||||
src: ['tools/build/es5build.js'],
|
src: ['tools/build/es5build.js'],
|
||||||
pipes: {}
|
pipes: {}
|
||||||
},
|
|
||||||
es5: {
|
|
||||||
src: ES5_DEPS,
|
|
||||||
pipes: {}
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
dart2js: {
|
|
||||||
src: ['tools/build/snippets/url_params_to_form.js'],
|
|
||||||
exclude: ['rtts_assert/'],
|
|
||||||
pipes: {}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dart: {
|
dart: {
|
||||||
@ -232,19 +208,19 @@ var CONFIG = {
|
|||||||
'**': _HTLM_DEFAULT_SCRIPTS_JS,
|
'**': _HTLM_DEFAULT_SCRIPTS_JS,
|
||||||
'benchmarks/**':
|
'benchmarks/**':
|
||||||
[
|
[
|
||||||
{ src: '../../url_params_to_form.js', mimeType: 'text/javascript' }
|
{ src: 'tools/build/snippets/url_params_to_form.js', mimeType: 'text/javascript', copy: true }
|
||||||
].concat(_HTLM_DEFAULT_SCRIPTS_JS),
|
].concat(_HTLM_DEFAULT_SCRIPTS_JS),
|
||||||
'benchmarks_external/**':
|
'benchmarks_external/**':
|
||||||
[
|
[
|
||||||
{ src: '../../angular.js', mimeType: 'text/javascript' },
|
{ src: 'node_modules/angular/angular.js', mimeType: 'text/javascript', copy: true },
|
||||||
{ src: '../../url_params_to_form.js', mimeType: 'text/javascript' }
|
{ src: 'tools/build/snippets/url_params_to_form.js', mimeType: 'text/javascript', copy: true }
|
||||||
].concat(_HTLM_DEFAULT_SCRIPTS_JS)
|
].concat(_HTLM_DEFAULT_SCRIPTS_JS)
|
||||||
},
|
},
|
||||||
dart: {
|
dart: {
|
||||||
'**': _HTML_DEFAULT_SCRIPTS_DART,
|
'**': _HTML_DEFAULT_SCRIPTS_DART,
|
||||||
'benchmarks*/**':
|
'benchmarks*/**':
|
||||||
[
|
[
|
||||||
{ src: '../../url_params_to_form.js', mimeType: 'text/javascript' }
|
{ src: 'tools/build/snippets/url_params_to_form.js', mimeType: 'text/javascript', copy: true }
|
||||||
].concat(_HTML_DEFAULT_SCRIPTS_DART)
|
].concat(_HTML_DEFAULT_SCRIPTS_DART)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -407,13 +383,6 @@ gulp.task('build/multicopy.js.dev.es6', copy.multicopy(gulp, gulpPlugins, {
|
|||||||
dest: CONFIG.dest.js.dev.es6
|
dest: CONFIG.dest.js.dev.es6
|
||||||
}));
|
}));
|
||||||
|
|
||||||
gulp.task('build/multicopy.js.dev.es5', copy.multicopy(gulp, gulpPlugins, {
|
|
||||||
src: CONFIG.multicopy.js.dev.es5.src,
|
|
||||||
pipes: CONFIG.multicopy.js.dev.es5.pipes,
|
|
||||||
exclude: CONFIG.multicopy.js.dev.es5.exclude,
|
|
||||||
dest: CONFIG.dest.js.dev.es5
|
|
||||||
}));
|
|
||||||
|
|
||||||
gulp.task('build/multicopy.js.prod.es6', copy.multicopy(gulp, gulpPlugins, {
|
gulp.task('build/multicopy.js.prod.es6', copy.multicopy(gulp, gulpPlugins, {
|
||||||
src: CONFIG.multicopy.js.prod.es6.src,
|
src: CONFIG.multicopy.js.prod.es6.src,
|
||||||
pipes: CONFIG.multicopy.js.prod.es6.pipes,
|
pipes: CONFIG.multicopy.js.prod.es6.pipes,
|
||||||
@ -421,13 +390,6 @@ gulp.task('build/multicopy.js.prod.es6', copy.multicopy(gulp, gulpPlugins, {
|
|||||||
dest: CONFIG.dest.js.prod.es6
|
dest: CONFIG.dest.js.prod.es6
|
||||||
}));
|
}));
|
||||||
|
|
||||||
gulp.task('build/multicopy.js.prod.es5', copy.multicopy(gulp, gulpPlugins, {
|
|
||||||
src: CONFIG.multicopy.js.prod.es5.src,
|
|
||||||
pipes: CONFIG.multicopy.js.prod.es5.pipes,
|
|
||||||
exclude: CONFIG.multicopy.js.prod.es5.exclude,
|
|
||||||
dest: CONFIG.dest.js.prod.es5
|
|
||||||
}));
|
|
||||||
|
|
||||||
gulp.task('build/multicopy.dart', copy.multicopy(gulp, gulpPlugins, {
|
gulp.task('build/multicopy.dart', copy.multicopy(gulp, gulpPlugins, {
|
||||||
src: CONFIG.multicopy.dart.src,
|
src: CONFIG.multicopy.dart.src,
|
||||||
pipes: CONFIG.multicopy.dart.pipes,
|
pipes: CONFIG.multicopy.dart.pipes,
|
||||||
@ -435,14 +397,6 @@ gulp.task('build/multicopy.dart', copy.multicopy(gulp, gulpPlugins, {
|
|||||||
dest: CONFIG.dest.dart
|
dest: CONFIG.dest.dart
|
||||||
}));
|
}));
|
||||||
|
|
||||||
gulp.task('build/multicopy.js.dart2js', copy.multicopy(gulp, gulpPlugins, {
|
|
||||||
src: CONFIG.multicopy.js.dart2js.src,
|
|
||||||
pipes: CONFIG.multicopy.js.dart2js.pipes,
|
|
||||||
exclude: CONFIG.multicopy.js.dart2js.exclude,
|
|
||||||
dest: CONFIG.dest.js.dart2js
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
|
||||||
// ------------
|
// ------------
|
||||||
// pubspec
|
// pubspec
|
||||||
|
|
||||||
@ -640,23 +594,20 @@ gulp.task('build.dart', function(done) {
|
|||||||
'build/packages.dart',
|
'build/packages.dart',
|
||||||
'build/analyze.dart',
|
'build/analyze.dart',
|
||||||
'build/pubbuild.dart',
|
'build/pubbuild.dart',
|
||||||
// Note: pubbuild.dart will clear the dart2js folder, so we need to copy
|
|
||||||
// our files after this :-(
|
|
||||||
'build/multicopy.js.dart2js',
|
|
||||||
done
|
done
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build.js.dev', function(done) {
|
gulp.task('build.js.dev', function(done) {
|
||||||
runSequence(
|
runSequence(
|
||||||
['build/transpile.js.dev', 'build/html.js.dev', 'build/copy.js.dev', 'build/multicopy.js.dev.es6', 'build/multicopy.js.dev.es5'],
|
['build/transpile.js.dev', 'build/html.js.dev', 'build/copy.js.dev', 'build/multicopy.js.dev.es6'],
|
||||||
done
|
done
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build.js.prod', function(done) {
|
gulp.task('build.js.prod', function(done) {
|
||||||
runSequence(
|
runSequence(
|
||||||
['build/transpile.js.prod', 'build/html.js.prod', 'build/copy.js.prod', 'build/multicopy.js.prod.es6', 'build/multicopy.js.prod.es5'],
|
['build/transpile.js.prod', 'build/html.js.prod', 'build/copy.js.prod', 'build/multicopy.js.prod.es6'],
|
||||||
done
|
done
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
"selenium-webdriver": "2.x.x"
|
"selenium-webdriver": "2.x.x"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"temp": "^0.8.1",
|
|
||||||
"angular": "1.3.5",
|
"angular": "1.3.5",
|
||||||
"bower": "^1.3.12",
|
"bower": "^1.3.12",
|
||||||
"canonical-path": "0.0.2",
|
"canonical-path": "0.0.2",
|
||||||
@ -68,8 +67,10 @@
|
|||||||
"run-sequence": "^0.3.6",
|
"run-sequence": "^0.3.6",
|
||||||
"source-map": "^0.3.0",
|
"source-map": "^0.3.0",
|
||||||
"sprintf-js": "1.0.*",
|
"sprintf-js": "1.0.*",
|
||||||
|
"temp": "^0.8.1",
|
||||||
"ternary-stream": "^1.2.3",
|
"ternary-stream": "^1.2.3",
|
||||||
"through2": "^0.6.1",
|
"through2": "^0.6.1",
|
||||||
|
"vinyl": "^0.4.6",
|
||||||
"yargs": "2.3.*"
|
"yargs": "2.3.*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ var util = require('./util');
|
|||||||
var file2moduleName = require('./file2modulename');
|
var file2moduleName = require('./file2modulename');
|
||||||
var through2 = require('through2');
|
var through2 = require('through2');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
var fs = require('fs');
|
||||||
|
var VinylFile = require('vinyl');
|
||||||
|
|
||||||
module.exports = function(gulp, plugins, config) {
|
module.exports = function(gulp, plugins, config) {
|
||||||
return function() {
|
return function() {
|
||||||
@ -11,10 +13,21 @@ module.exports = function(gulp, plugins, config) {
|
|||||||
var fileName = file.relative;
|
var fileName = file.relative;
|
||||||
var moduleName = file2moduleName(fileName);
|
var moduleName = file2moduleName(fileName);
|
||||||
var moduleNameWithoutPath = path.basename(moduleName);
|
var moduleNameWithoutPath = path.basename(moduleName);
|
||||||
|
var self = this;
|
||||||
var scripts = util.filterByFile(config.scriptsPerFolder, fileName).map(function(script) {
|
var scripts = util.filterByFile(config.scriptsPerFolder, fileName).map(function(script) {
|
||||||
var scriptTag;
|
var scriptTag;
|
||||||
if (script.src) {
|
var scriptSrc = script.src;
|
||||||
scriptTag = '<script src="'+script.src+'" type="'+script.mimeType+'"></script>';
|
if (script.copy) {
|
||||||
|
scriptSrc = path.basename(script.src);
|
||||||
|
self.push(new VinylFile({
|
||||||
|
cwd: file.cwd,
|
||||||
|
base: file.base,
|
||||||
|
path: path.join(path.dirname(file.path), scriptSrc),
|
||||||
|
contents: fs.readFileSync(script.src)
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
if (scriptSrc) {
|
||||||
|
scriptTag = '<script src="'+scriptSrc+'" type="'+script.mimeType+'"></script>';
|
||||||
} else {
|
} else {
|
||||||
scriptTag = '<script type="'+script.mimeType+'">'+script.inline+'</script>';
|
scriptTag = '<script type="'+script.mimeType+'">'+script.inline+'</script>';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user