- 2025/10/31
- 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']);