今天完成了yf-fpm-server的v2.0版本,是使用es6語(yǔ)法寫(xiě)的,興致勃勃的 publish,結(jié)果使用的時(shí)候:
錯(cuò)誤信息
大體的意思就是:不支持import關(guān)鍵字,也就是語(yǔ)法錯(cuò)誤。
糾結(jié)了一會(huì)兒,大概得出了這么個(gè)結(jié)論,npm install到項(xiàng)目中的庫(kù)是不能為es6語(yǔ)法的,還必須通過(guò)babel進(jìn)行轉(zhuǎn)譯。
根據(jù)這個(gè)信息整理了一些資料:
- 使用ES6來(lái)編寫(xiě)你的Node模塊
- using-es6-today <=這個(gè)真的很有用
解決思路:
- 將es代碼剪切到src目錄下
- 在publish之前通過(guò)babel將代碼轉(zhuǎn)譯到lib目錄下
- 將lib代碼設(shè)置為main
實(shí)施方案:
- 在項(xiàng)目根目錄下創(chuàng)建 .babelrc 文件,并寫(xiě)入轉(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ā)這個(gè)指令
"server": "node app.babel.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
再次執(zhí)行
$ npm publish
開(kāi)發(fā)的npm包終于可用了!