Minification - part 1 (#762)
* Minification - part 1 Creating a minified version of javascript signalr client
This commit is contained in:
parent
bcd5a1bd6e
commit
83f3605cfb
|
|
@ -1,8 +1,11 @@
|
||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
const browserify = require('browserify');
|
const browserify = require('browserify');
|
||||||
const ts = require('gulp-typescript');
|
const ts = require('gulp-typescript');
|
||||||
const source = require('vinyl-source-stream');
|
const source = require('vinyl-source-stream');
|
||||||
const del = require('del');
|
const buffer = require('vinyl-buffer');
|
||||||
|
const del = require('del');
|
||||||
|
const rename = require('gulp-rename');
|
||||||
|
const babel = require('gulp-babel');
|
||||||
|
|
||||||
const tsProject = ts.createProject('./tsconfig.json');
|
const tsProject = ts.createProject('./tsconfig.json');
|
||||||
const clientOutDir = tsProject.options.outDir;
|
const clientOutDir = tsProject.options.outDir;
|
||||||
|
|
@ -17,18 +20,25 @@ gulp.task('compile-ts-client', () => {
|
||||||
.pipe(gulp.dest(clientOutDir));
|
.pipe(gulp.dest(clientOutDir));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('browserify-client', ['compile-ts-client'], () => {
|
function browserifyModule(sourceFileName, namespace, targetFileName) {
|
||||||
return browserify(clientOutDir + '/HubConnection.js', {standalone: 'signalR'})
|
const browserOutDir = clientOutDir + '/../browser';
|
||||||
|
|
||||||
|
return browserify(clientOutDir + '/' + sourceFileName, {standalone: namespace})
|
||||||
.bundle()
|
.bundle()
|
||||||
.pipe(source('signalr-client.js'))
|
.pipe(source(targetFileName))
|
||||||
.pipe(gulp.dest(clientOutDir + '/../browser'));
|
.pipe(gulp.dest(browserOutDir))
|
||||||
|
.pipe(buffer())
|
||||||
|
.pipe(rename({ extname: '.min.js' }))
|
||||||
|
.pipe(babel({presets: ['minify']}))
|
||||||
|
.pipe(gulp.dest(browserOutDir));
|
||||||
|
}
|
||||||
|
|
||||||
|
gulp.task('browserify-client', ['compile-ts-client'], () => {
|
||||||
|
return browserifyModule('HubConnection.js', 'signalR', 'signalr-client.js');
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('browserify-msgpackprotocol', ['compile-ts-client'], () => {
|
gulp.task('browserify-msgpackprotocol', ['compile-ts-client'], () => {
|
||||||
return browserify(clientOutDir + '/MessagePackHubProtocol.js', {standalone: 'signalRMsgPack'})
|
return browserifyModule('MessagePackHubProtocol.js', 'signalRMsgPack', 'signalr-msgpackprotocol.js');
|
||||||
.bundle()
|
|
||||||
.pipe(source('signalr-msgpackprotocol.js'))
|
|
||||||
.pipe(gulp.dest(clientOutDir + '/../browser'));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('browserify', [ 'browserify-client', 'browserify-msgpackprotocol']);
|
gulp.task('browserify', [ 'browserify-client', 'browserify-msgpackprotocol']);
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,10 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Copy SourceFiles="@(JasmineFiles)" DestinationFolder="$(MSBuildProjectDirectory)/wwwroot/lib/jasmine" />
|
<Copy SourceFiles="@(JasmineFiles)" DestinationFolder="$(MSBuildProjectDirectory)/wwwroot/lib/jasmine" />
|
||||||
|
|
||||||
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\dist\browser\signalr-client.js;$(MSBuildThisFileDirectory)..\dist\browser\signalr-msgpackprotocol.js"
|
<ItemGroup>
|
||||||
DestinationFolder="$(MSBuildThisFileDirectory)wwwroot\lib\signalr" />
|
<SignalRJSClientFiles Include="$(MSBuildThisFileDirectory)..\dist\browser\*" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(SignalRJSClientFiles)" DestinationFolder="$(MSBuildThisFileDirectory)wwwroot\lib\signalr" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
<script type="text/javascript" src="lib/jasmine/jasmine.js"></script>
|
<script type="text/javascript" src="lib/jasmine/jasmine.js"></script>
|
||||||
<script type="text/javascript" src="lib/jasmine/jasmine-html.js"></script>
|
<script type="text/javascript" src="lib/jasmine/jasmine-html.js"></script>
|
||||||
<script type="text/javascript" src="lib/jasmine/boot.js"></script>
|
<script type="text/javascript" src="lib/jasmine/boot.js"></script>
|
||||||
<script type="text/javascript" src="lib/signalr/signalr-client.js"></script>
|
<script type="text/javascript" src="lib/signalr/signalr-client.min.js"></script>
|
||||||
<script type="text/javascript" src="lib/signalr/signalr-msgpackprotocol.js"></script>
|
<script type="text/javascript" src="lib/signalr/signalr-msgpackprotocol.min.js"></script>
|
||||||
<script src="js/common.js"></script>
|
<script src="js/common.js"></script>
|
||||||
<script src="js/webSocketTests.js"></script>
|
<script src="js/webSocketTests.js"></script>
|
||||||
<script src="js/connectionTests.js"></script>
|
<script src="js/connectionTests.js"></script>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -24,13 +24,19 @@
|
||||||
"homepage": "https://github.com/aspnet/SignalR#readme",
|
"homepage": "https://github.com/aspnet/SignalR#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/msgpack5": "^3.4.0",
|
"@types/msgpack5": "^3.4.0",
|
||||||
|
"babel-minify": "^0.2.0",
|
||||||
"browserify": "^13.1.1",
|
"browserify": "^13.1.1",
|
||||||
|
"buffer": "^5.0.7",
|
||||||
"del": "^2.2.2",
|
"del": "^2.2.2",
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-babel": "^7.0.0",
|
||||||
|
"gulp-rename": "^1.2.2",
|
||||||
"gulp-typescript": "^3.1.3",
|
"gulp-typescript": "^3.1.3",
|
||||||
"jasmine": "^2.5.2",
|
"jasmine": "^2.5.2",
|
||||||
|
"lodash": "^4.17.4",
|
||||||
"msgpack5": "^3.5.0",
|
"msgpack5": "^3.5.0",
|
||||||
"typescript": "^2.0.10",
|
"typescript": "^2.0.10",
|
||||||
|
"vinyl-buffer": "^1.0.0",
|
||||||
"vinyl-source-stream": "^1.1.0"
|
"vinyl-source-stream": "^1.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue