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

錯誤信息
大體的意思就是:不支持import關(guān)鍵字,也就是語法錯誤。
糾結(jié)了一會兒,大概得出了這么個結(jié)論,npm install到項目中的庫是不能為es6語法的,還必須通過babel進(jìn)行轉(zhuǎn)譯。
根據(jù)這個信息整理了一些資料:
- 使用ES6來編寫你的Node模塊
- using-es6-today <=這個真的很有用
解決思路:
- 將es代碼剪切到src目錄下
- 在publish之前通過babel將代碼轉(zhuǎn)譯到lib目錄下
- 將lib代碼設(shè)置為main
實施方案:
- 在項目根目錄下創(chuàng)建 .babelrc 文件,并寫入轉(zhuǎn)譯規(guī)則:
{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-runtime"],
"comments": false
}
- 修改 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包終于可用了!