2014-07-09 53 views
3

我使用一飲而盡,以建立自己的腳本和我試着去「墊片」 jQuery的1.11到我的js腳本,以便它可以使用它,我目前的代碼:一飲而盡browserify墊片和jQuery依賴

SimpleScript:

var $ = require('jquery')(window); 

var SimpleScript = { 

    init: function(){ 

     console.log('xxx'); 

    } 
} 

$(document).ready(function() { 
    SimpleScript.init() 
}); 

module.exports = SimpleScript; 

skeleton.js:

var $ = require('jquery')(window); 
var areaMng = require('./SimpleScript.js'); 

Gulfile.js

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var autoprefixer = require('gulp-autoprefixer'); 
var minifyCSS = require('gulp-minify-css'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var browserify = require('gulp-browserify'); 
var rename = require('gulp-rename'); 
var gzip = require('gulp-gzip'); 

gulp.task('js', function() { 
    gulp.src('app/assets/scripts/skeleton.js') 
     .pipe(browserify({ 
      shim: { 
       jquery: { 
        path: 'public/js/jquery.min.js', 
        exports: '$' 
       } 
      } 
     })) 
     .pipe(gulp.dest('public/js')); 

}); 

所有這些運行非常順利... 但是 我得到一個錯誤 - $沒有在 - > SimpleScript.init()中調用 - > console.log('xxx');

,當然,當我嘗試訪問的jQuery在Chrome控制檯 - >「$」沒有定義

*筆記 - 時生成的文件有jQuery的1.11裏面,我可以看到它。 - 我試圖引用jQuery,jQuery和$都一樣。

回答

2

解決了它!

因爲我安裝了jquery,所以文件導入同名的「jquery」填充不好。

這是應該的:

SimpleScript:

var $ = require('jQuery'); 

var SimpleScript = { 

    init: function(){ 

     console.log('xxx'); 

    } 
} 

$(document).ready(function() { 
    SimpleScript.init() 
}); 

module.exports = SimpleScript; 

Gulfile.js

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var autoprefixer = require('gulp-autoprefixer'); 
var minifyCSS = require('gulp-minify-css'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var browserify = require('gulp-browserify'); 
var rename = require('gulp-rename'); 
var gzip = require('gulp-gzip'); 

gulp.task('js', function() { 
    gulp.src('app/assets/scripts/skeleton.js') 
     .pipe(browserify({ 
      shim: { 
       jQuery: { 
        path: 'public/js/jquery.min.js', 
        exports: '$' 
       } 
      } 
     })) 
     .pipe(gulp.dest('public/js')); 

});