Minification - part 1 (#762)

* Minification - part 1

Creating a minified version of javascript signalr client
This commit is contained in:
Pawel Kadluczka 2017-08-25 12:27:35 -07:00 committed by GitHub
parent bcd5a1bd6e
commit 83f3605cfb
5 changed files with 1923 additions and 184 deletions

View File

@ -1,8 +1,11 @@
const gulp = require('gulp');
const gulp = require('gulp');
const browserify = require('browserify');
const ts = require('gulp-typescript');
const source = require('vinyl-source-stream');
const del = require('del');
const ts = require('gulp-typescript');
const source = require('vinyl-source-stream');
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 clientOutDir = tsProject.options.outDir;
@ -17,18 +20,25 @@ gulp.task('compile-ts-client', () => {
.pipe(gulp.dest(clientOutDir));
});
gulp.task('browserify-client', ['compile-ts-client'], () => {
return browserify(clientOutDir + '/HubConnection.js', {standalone: 'signalR'})
function browserifyModule(sourceFileName, namespace, targetFileName) {
const browserOutDir = clientOutDir + '/../browser';
return browserify(clientOutDir + '/' + sourceFileName, {standalone: namespace})
.bundle()
.pipe(source('signalr-client.js'))
.pipe(gulp.dest(clientOutDir + '/../browser'));
.pipe(source(targetFileName))
.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'], () => {
return browserify(clientOutDir + '/MessagePackHubProtocol.js', {standalone: 'signalRMsgPack'})
.bundle()
.pipe(source('signalr-msgpackprotocol.js'))
.pipe(gulp.dest(clientOutDir + '/../browser'));
return browserifyModule('MessagePackHubProtocol.js', 'signalRMsgPack', 'signalr-msgpackprotocol.js');
});
gulp.task('browserify', [ 'browserify-client', 'browserify-msgpackprotocol']);

View File

@ -26,8 +26,10 @@
</ItemGroup>
<Copy SourceFiles="@(JasmineFiles)" DestinationFolder="$(MSBuildProjectDirectory)/wwwroot/lib/jasmine" />
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\dist\browser\signalr-client.js;$(MSBuildThisFileDirectory)..\dist\browser\signalr-msgpackprotocol.js"
DestinationFolder="$(MSBuildThisFileDirectory)wwwroot\lib\signalr" />
<ItemGroup>
<SignalRJSClientFiles Include="$(MSBuildThisFileDirectory)..\dist\browser\*" />
</ItemGroup>
<Copy SourceFiles="@(SignalRJSClientFiles)" DestinationFolder="$(MSBuildThisFileDirectory)wwwroot\lib\signalr" />
</Target>
</Project>

View File

@ -8,8 +8,8 @@
<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/boot.js"></script>
<script type="text/javascript" src="lib/signalr/signalr-client.js"></script>
<script type="text/javascript" src="lib/signalr/signalr-msgpackprotocol.js"></script>
<script type="text/javascript" src="lib/signalr/signalr-client.min.js"></script>
<script type="text/javascript" src="lib/signalr/signalr-msgpackprotocol.min.js"></script>
<script src="js/common.js"></script>
<script src="js/webSocketTests.js"></script>
<script src="js/connectionTests.js"></script>

File diff suppressed because it is too large Load Diff

View File

@ -24,13 +24,19 @@
"homepage": "https://github.com/aspnet/SignalR#readme",
"devDependencies": {
"@types/msgpack5": "^3.4.0",
"babel-minify": "^0.2.0",
"browserify": "^13.1.1",
"buffer": "^5.0.7",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-babel": "^7.0.0",
"gulp-rename": "^1.2.2",
"gulp-typescript": "^3.1.3",
"jasmine": "^2.5.2",
"lodash": "^4.17.4",
"msgpack5": "^3.5.0",
"typescript": "^2.0.10",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0"
}
}