這篇“gulp+browserify編譯es6錯誤怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“gulp+browserify編譯es6錯誤怎么解決”文章吧。
成都創新互聯服務項目包括順昌網站建設、順昌網站制作、順昌網頁制作以及順昌網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,順昌網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到順昌省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
環境搭建
首先使用npm初始化一個package.json文件
$ npm init
然后需要安裝gulp和browserify到本地項目中
$ npm install –save-dev gulp
$ npm install –save-dev browserify
接著還需要安裝兩個輔助的工具babelify 和 vinyl-source-stream
$ npm install –save-dev babelify
$ npm install –save-dev vinyl-source-stream
上面所有工具安裝完成以后在package.json文件中會有以下依賴
devDependencies: {
babel-preset-es2015: "^6.18.0",
babelify: "^7.3.0",
browserify: "^13.3.0",
gulp: "^3.9.1",
vinyl-source-stream: "^1.1.0"
}
編寫代碼
首先在根目錄下新建一個文件onmpw.es6.js
import {onmpw} from "./lib/onmpw";
var moma;
export default moma = function(){
onmpw ();
console.log('es6');
}
window.moma = moma;
然后在根目錄下新建gulpfile.js文件。編寫以下代碼
var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');
gulp.task('onmpw',function(){
return browserify({
entries: "./onmpw.es6.js",
debug: true,
})
.transform(babelify)
.bundle()
.pipe(source('onmpwes6.js'))
.pipe(gulp.dest('dist')); })
gulp.task('default',['onmpw']);
然后運行gulp
$ gulp
這里我們在根目錄下運行gulp,并且gulpfile.js文件也在根目錄下。所以gulp會自動讀取gulpfile.js文件。如果gulpfile.js文件不再根目錄下,我們還需要指定gulpfile.js所在位置。
$ gulp –gulpfile gulpfile.js所在目錄
運行上述命令,順利情況下會編譯成功
[22:31:23] Using gulpfile /www/onmpw_plugins/ gulpfile.js
[22:31:23] Starting 'onmpw'...
[22:31:26] Finished 'onmpw' after 3.12 s
[22:31:26] Starting 'default'...
[22:31:26] Finished 'default' after 39 μs
但是事情總不是那么順利,這時很可能會報一下錯誤
events.js:160
throw er; // Unhandled 'error' event
^
SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'
錯誤解決
出現上述錯誤,我們首先就要去檢查各個工具的版本。在package.json文件中我們可以找到browserify和babelify的版本分別為13.3.0和7.3.0。這是非常新的版本,需要借助babel-preset-es2015工具(至于其原理是什么,大家可以自行去腦補)。
$ npm install –save-dev babel-preset-es2015
然后修改gulpfile.js內容中的
return browserify({
entries: "./onmpw.es6.js",
debug: true,
})
.transform(babelify)
改為
return browserify({
entries: "lib/momaEntry.js",
debug: true,
})
.transform(babelify.configure({
presets:['es2015']
}))
也可以在根目錄下新建 .babelrc 文件,然后寫入以下內容
{
presets:['es2015']
}
兩種方式都是可以的。
當然了,既然知道是版本太新所引起的。除了上面添加輔助工具以外,還可以降低工具的版本。我自己經過試驗,得出只是降低babelify的版本為6.0.2即可。
$ npm install –save-dev babelify@6.0.2
package.json依賴工具的內容如下
devDependencies: {
babel-preset-es2015: "^6.18.0",
babelify: "^6.0.2",
browserify: "^13.3.0",
gulp: "^3.9.1",
vinyl-source-stream: "^1.1.0"
}
這樣我們就可以不用借助babel-preset-es2015這個工具了。也不用再修改gulpfile.js既可編譯成功。
以上就是關于“gulp+browserify編譯es6錯誤怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。
本文名稱:gulp+browserify編譯es6錯誤怎么解決
文章地址:http://m.newbst.com/article24/gdegje.html
成都網站建設公司_創新互聯,為您提供網站建設、手機網站建設、域名注冊、用戶體驗、微信公眾號、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯