發(fā)布es6寫的npm包遇到了這個坑

今天完成了yf-fpm-server的v2.0版本,是使用es6語法寫的,興致勃勃的 publish,結(jié)果使用的時候:


錯誤信息

大體的意思就是:不支持import關(guān)鍵字,也就是語法錯誤。
糾結(jié)了一會兒,大概得出了這么個結(jié)論,npm install到項目中的庫是不能為es6語法的,還必須通過babel進(jìn)行轉(zhuǎn)譯。
根據(jù)這個信息整理了一些資料:

解決思路:

  1. 將es代碼剪切到src目錄下
  2. 在publish之前通過babel將代碼轉(zhuǎn)譯到lib目錄下
  3. 將lib代碼設(shè)置為main

實施方案:

  1. 在項目根目錄下創(chuàng)建 .babelrc 文件,并寫入轉(zhuǎn)譯規(guī)則:
{
  "presets": ["es2015", "stage-2"],
  "plugins": ["transform-runtime"],
  "comments": false
}
  1. 修改 package.json 文件:
"main": "lib/bin/app.js", //babel轉(zhuǎn)譯之后的代碼
  "scripts": {
    "compile": "babel -d lib/ src/", //babel轉(zhuǎn)譯指令
    "prepublish": "npm run compile", //在publish操作之前觸發(fā)這個指令
    "server": "node app.babel.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

再次執(zhí)行
$ npm publish

開發(fā)的npm包終于可用了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、ES6 參考 http://es6.ruanyifeng.com/ ECMAScript當(dāng)前所有提案 Git...
    pifoo閱讀 11,925評論 1 13
  • 在 2 月 20 號 ECMAScript 第六版就正式推出了,這門語言一直保持穩(wěn)定快速的發(fā)展而且新功能也在慢慢被...
    四月橘林閱讀 13,156評論 0 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,825評論 25 709
  • 這山里有些沉悶 媽媽在準(zhǔn)備晚餐 番薯 紅薯 白薯 我來劈柴 我想要條魚 很久了 父親說我準(zhǔn)是瘋了 沒有湖沒有海哪里...
    江小昨閱讀 575評論 3 14
  • 前幾天坐公交車路過老太原菜館時,看見擺出了早點(diǎn)攤,吃早餐的人還不少。 因為老太原菜館就在汾河公園的邊上,吃了早餐,...
    龍寶青青閱讀 809評論 3 6

友情鏈接更多精彩內(nèi)容