天天看點

解決Linux下gulp中events.js:72的問題

  晚上在Linux下搭建環境,代碼都下好了,gulp也在全局裝好了,按照在Windows下的習慣,直接在目錄下敲gulp,結果抛出異常了。

<a href="http://s3.51cto.com/wyfs02/M02/72/AE/wKiom1XrDtzwzlKsAADByLDRWaM251.jpg" target="_blank"></a>

  開始還以為是權限問題,用了sudo發現沒用,就去看了看gulpfile.js,内容如下:

<code>'use strict'</code><code>;</code>

<code>var</code> <code>gulp = require(</code><code>'gulp'</code><code>);</code>

<code>var</code> <code>g = require(</code><code>'gulp-load-plugins'</code><code>)({lazy: </code><code>false</code><code>});</code>

<code>var</code> <code>inject = require(</code><code>'gulp-inject'</code><code>);</code>

<code>var</code> <code>browserSync = require(</code><code>'browser-sync'</code><code>);</code>

<code>var</code> <code>connect = require(</code><code>'gulp-connect'</code><code>);</code>

<code>var</code> <code>historyApiFallback = require(</code><code>'connect-history-api-fallback'</code><code>);</code>

<code>var</code> <code>reload = browserSync.reload;</code>

<code>var</code> <code>config = {</code>

<code>    </code><code>paths: {</code>

<code>        </code><code>html: {</code>

<code>            </code><code>src:  [</code><code>"src/**/*.html"</code><code>],</code>

<code>            </code><code>dest: </code><code>"build"</code>

<code>        </code><code>},</code>

<code>        </code><code>js: {</code>

<code>            </code><code>src:  [</code><code>"src/**/*.js"</code><code>,</code><code>'!./src/lib/angular.min.js'</code><code>,</code><code>'!./src/lib/jquery.min.js'</code><code>,</code><code>'!./src/js/app.js'</code><code>],</code>

<code>            </code><code>dest: </code><code>"build/js"</code>

<code>        </code><code>css: {</code>

<code>            </code><code>src: [</code><code>"src/css/**/*.css"</code><code>],</code>

<code>            </code><code>dest: </code><code>"build/css"</code>

<code>        </code><code>assets: {</code>

<code>            </code><code>src: [</code><code>"src/assets/**/*.png"</code><code>, </code><code>"src/assets/**/*.jpg"</code><code>],</code>

<code>            </code><code>dest: </code><code>"build/assets"</code>

<code>        </code><code>}</code>

<code>    </code><code>}</code>

<code>}</code>

<code>//打包config</code>

<code>var</code> <code>distConfig = {</code>

<code>        </code><code>libjs: {</code>

<code>            </code><code>src:  [</code><code>"src/lib/angular.min.js"</code><code>,</code><code>"src/lib/jquery.min.js"</code><code>,</code><code>"src/lib/angular-resource.min.js"</code><code>,</code><code>"src/lib/angular-ui-router.min.js"</code><code>,</code><code>"src/lib/highcharts-ng.js"</code><code>,</code><code>"src/lib/highcharts.js"</code><code>,</code><code>"src/lib/smart-table.min.js"</code><code>,</code><code>"src/lib/ui-bootstrap-tpls-0.13.2.min.js"</code><code>],</code>

<code>        </code><code>appjs: {</code>

<code>            </code><code>src:  [</code><code>"src/js/app.js"</code><code>,</code><code>"src/services/mainService.js"</code><code>,</code><code>"src/coms/area/areaCtrl.js"</code><code>,</code><code>"src/coms/details/detailsCtrl.js"</code><code>,</code><code>"src/coms/details/singleCtrl.js"</code><code>,</code><code>"src/coms/home/homeCtrl.js"</code><code>,</code><code>"src/coms/rank/rankCtrl.js"</code><code>],</code>

<code>            </code><code>src: [</code><code>"src/css/bootstrap.min.css"</code><code>, </code><code>"src/css/details.css"</code><code>, </code><code>"src/css/font-awesome.min.css"</code><code>, </code><code>"src/css/homepage.css"</code><code>, </code><code>"src/css/ranking.css"</code><code>, </code><code>"src/css/single.css"</code><code>, </code><code>"src/css/tarea.css"</code><code>],</code>

<code>            </code><code>dest: </code><code>"dist/css"</code>

<code>            </code><code>dest: </code><code>"dist/assets"</code>

<code> </code><code>// 檢查腳本</code>

<code>gulp.task(</code><code>'jscheck'</code><code>, </code><code>function</code><code>() {</code>

<code>    </code><code>gulp.src(config.paths.js.src)</code>

<code>        </code><code>.pipe(g.jshint())</code>

<code>        </code><code>.pipe(g.jshint.reporter(</code><code>'default'</code><code>));</code>

<code>});</code>

<code>// 合并,壓縮js檔案</code>

<code>gulp.task(</code><code>'minjs'</code><code>, </code><code>function</code><code>() {</code>

<code>        </code><code>.pipe(g.concat(</code><code>'app.js'</code><code>))</code>

<code>        </code><code>.pipe(gulp.dest(</code><code>'./dist'</code><code>))</code>

<code>        </code><code>.pipe(g.rename(</code><code>'app.min.js'</code><code>))</code>

<code>        </code><code>.pipe(g.uglify())</code>

<code>        </code><code>.pipe(gulp.dest(</code><code>'./dist'</code><code>));</code>

<code>// 合并,壓縮css檔案</code>

<code>gulp.task(</code><code>'mincss'</code><code>, </code><code>function</code><code>() {</code>

<code>    </code><code>gulp.src(config.paths.css.src)</code>

<code>        </code><code>.pipe(g.concat(</code><code>'app.css'</code><code>))</code>

<code>        </code><code>.pipe(g.rename(</code><code>'app.min.css'</code><code>))</code>

<code>        </code><code>.pipe(g.cssmin())</code>

<code>// 轉移index.html到tmp目錄下</code>

<code>gulp.task(</code><code>'html'</code><code>, </code><code>function</code><code>() {</code>

<code>    </code><code>gulp.src(</code><code>'./src/index.html'</code><code>)</code>

<code>        </code><code>.pipe(g.rename(</code><code>'tmp.html'</code><code>))</code>

<code>        </code><code>.pipe(gulp.dest(</code><code>'./tmp'</code><code>));</code>

<code>// 打包</code>

<code>gulp.task(</code><code>'dist'</code><code>, </code><code>function</code><code>(){</code>

<code>    </code><code>gulp.run(</code><code>'jscheck'</code><code>, </code><code>'minjs'</code><code>, </code><code>'mincss'</code><code>);</code>

<code>// 預設任務</code>

<code>gulp.task(</code><code>'watch'</code><code>,[</code><code>'inject'</code><code>], </code><code>function</code> <code>() {</code>

<code>  </code><code>browserSync({</code>

<code>    </code><code>notify: </code><code>false</code><code>,</code>

<code>    </code><code>// Run as an https by uncommenting 'https: true'</code>

<code>    </code><code>// Note: this uses an unsigned certificate which on first access</code>

<code>    </code><code>//       will present a certificate warning in the browser.</code>

<code>    </code><code>// https: true,</code>

<code>    </code><code>server: {</code>

<code>        </code><code>baseDir:[</code><code>'src'</code><code>],</code>

<code>        </code><code>index: </code><code>"index.html"</code><code>,</code>

<code>        </code><code>middleware: [ historyApiFallback()]</code>

<code>  </code><code>});</code>

<code>  </code><code>// gulp.watch(config.paths.css.src, ['inject']);</code>

<code>  </code><code>// gulp.watch(config.paths.js.src,  ['inject']);</code>

<code>  </code><code>gulp.watch([config.paths.html.src,config.paths.css.src,config.paths.js.src], [</code><code>'inject'</code><code>]);</code>

<code>  </code><code>gulp.watch([config.paths.html.src,</code><code>'./src/index.html'</code><code>], reload);</code>

<code>// 測試環境運作</code>

<code>gulp.task(</code><code>'server'</code><code>, </code><code>function</code><code>(){</code>

<code>    </code><code>connect.server({</code>

<code>        </code><code>port: </code><code>'3000'</code><code>,</code>

<code>        </code><code>root: </code><code>'./src'</code><code>,</code>

<code>        </code><code>middleware: </code><code>function</code><code>(connect, opt) {</code>

<code>            </code><code>return</code> <code>[ historyApiFallback({}) ];</code>

<code>    </code><code>});</code>

<code>// inject css js</code>

<code>gulp.task(</code><code>'inject'</code><code>, </code><code>function</code><code>(){</code>

<code>  </code><code>return</code> <code>gulp.src(</code><code>'./src/index.html'</code><code>)</code>

<code>    </code><code>.pipe(inject(gulp.src(config.paths.js.src, {read: </code><code>false</code><code>}), {ignorePath: </code><code>'src'</code><code>}))</code>

<code>    </code><code>.pipe(inject(gulp.src(config.paths.css.src, {read: </code><code>false</code><code>}), {ignorePath: </code><code>'src'</code><code>}))</code>

<code>    </code><code>.pipe(gulp.dest(</code><code>'./src'</code><code>))</code>

<code>})</code>

<code>gulp.task(</code><code>'default'</code><code>, [</code><code>'inject'</code><code>, </code><code>'watch'</code><code>]);</code>

  發現其中有很多gulp.task,可能是命中其中某個task,就抛出異常了,于是我嘗試gulp server,server是其中一個task的名字,沒想到居然好了。

<a href="http://s3.51cto.com/wyfs02/M00/72/AA/wKioL1XrFieiNJTeAADqJS1lTdA792.jpg" target="_blank"></a>

本文轉自 iampomelo 51CTO部落格,原文連結:http://blog.51cto.com/iampomelo/1691676,如需轉載請自行聯系原作者