- 2024/11/21
- Category :
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ステップアップしていくブログです。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
$ cd project_dir $ mkdir -p src/js $ mkdir -p public/assets/jsgulpのインストール。
$ npm init $ npm install --save-dev gulp $ echo 'export PATH=$PATH:/hoge/www/project_dir/node_modules/.bin' >> ~/.bashrc $ source ~/.bashrcこれで、
$ gulp -v [22:00:00] CLI version 3.8.11 [22:00:00] Local version 3.8.11OKですね。
$ cat gulpfile.js 'use strict'; var gulp = require('gulp'); gulp.task('hoge', function (callback) { console.log('hoge'); }); gulp.task('default', ['hoge']);これで、
$ gulp [22:05:00] Using gulpfile ~/www/project_dir/gulpfile.js [22:05:00] Starting 'hoge'... hoge大丈夫ですね!
$ cat gulpfile.js 'use strict'; var gulp = require('gulp'); gulp.task('script', function (callback) { return gulp.src(['src/js/*.js']) .pipe(gulp.dest('public/assets/js')); }); gulp.task('hoge', function (callback) { console.log('hoge'); }); gulp.task('default', ['script']); $ cat src/js/a.js (function(global) { 'use strict'; console.log('happy!'); })((this || 0).self || global);これで、
$ gulp $ ls public/assets/js/ . .. a.js出力されています!
$ cat src/js/b.js (function(global) { 'use strict'; console.log('lucky!'); })((this || 0).self || global); $ cat gulpfile.js 'use strict'; var gulp = require('gulp'); var concat = require('gulp-concat'); gulp.task('script', function (callback) { return gulp.src(['src/js/*.js']) .pipe(concat('all.js')) .pipe(gulp.dest('public/assets/js')); }); gulp.task('hoge', function (callback) { console.log('hoge'); }); gulp.task('default', ['script']);連結用にgulp-concatをインストールします。
$ npm install --save-dev gulp-concat $ gulp $ ls public/assets/js/ . .. a.js all.js出来ました!
$ node public/assets/js/all.js happy! lucky!d(^^)b
$ cat gulpfile.js 'use strict'; var gulp = require('gulp'); var concat = require('gulp-concat'); var uglify = require('gulp-uglify'); gulp.task('script', function (callback) { return gulp.src(['src/js/*.js']) .pipe(concat('all.js')) .pipe(uglify()) .pipe(gulp.dest('public/assets/js')); }); gulp.task('hoge', function (callback) { console.log('hoge'); }); gulp.task('default', ['script']); $ npm install --save-dev gulp-uglify $ gulp $ cat public/assets/js/all.js !function(l){"use strict";console.log("happy!")}((this||0).self||global),function(l){"use strict";console.log("lucky!")}((this||0).self||global);これくらいの小ささだとあまり圧縮の効果もありませんが。。
$ npm install --save-dev bower $ npm install --save-dev browserify $ npm install --save-dev debowerify $ npm install --save-dev vinyl-source-stream $ npm install --save-dev event-stream $ bower init $ bower install --save jquerypackage.jsonへ以下の記述を追加します。
"browserify": { "transform": [ "debowerify" ] }
$ cat src/js/a.js (function(global) { 'use strict'; var $ = require('jquery'); $('#btn').click(function() { alert('happy!'); }); })((this || 0).self || global); $ cat gulpfile.js 'use strict'; var gulp = require('gulp'); var concat = require('gulp-concat'); var uglify = require('gulp-uglify'); var browserify = require('browserify'); var source = require('vinyl-source-stream'); var es = require('event-stream'); gulp.task('script', function (callback) { var sc = gulp.src(['src/js/*.js']) .pipe(concat('all.js')) .pipe(uglify()) .pipe(gulp.dest('public/assets/js')); var br = browserify({ debug: true, entries: ['public/assets/js/all.js'] }).bundle() .pipe(source('all.js')) .pipe(gulp.dest('public/assets/js')); return es.merge(sc, br); }); gulp.task('hoge', function (callback) { console.log('hoge'); }); gulp.task('default', ['script']);