发布es6写的npm包遇到了这个坑

今天完成了yf-fpm-server的v2.0版本,是使用es6语法写的,兴致勃勃的 publish,结果使用的时候:


错误信息

大体的意思就是:不支持import关键字,也就是语法错误。
纠结了一会儿,大概得出了这么个结论,npm install到项目中的库是不能为es6语法的,还必须通过babel进行转译。
根据这个信息整理了一些资料:

解决思路:

  1. 将es代码剪切到src目录下
  2. 在publish之前通过babel将代码转译到lib目录下
  3. 将lib代码设置为main

实施方案:

  1. 在项目根目录下创建 .babelrc 文件,并写入转译规则:
{
  "presets": ["es2015", "stage-2"],
  "plugins": ["transform-runtime"],
  "comments": false
}
  1. 修改 package.json 文件:
"main": "lib/bin/app.js", //babel转译之后的代码
  "scripts": {
    "compile": "babel -d lib/ src/", //babel转译指令
    "prepublish": "npm run compile", //在publish操作之前触发这个指令
    "server": "node app.babel.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

再次执行
$ npm publish

开发的npm包终于可用了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、ES6 参考 http://es6.ruanyifeng.com/ ECMAScript当前所有提案 Git...
    pifoo阅读 14,050评论 1 13
  • 在 2 月 20 号 ECMAScript 第六版就正式推出了,这门语言一直保持稳定快速的发展而且新功能也在慢慢被...
    四月橘林阅读 14,455评论 0 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,192评论 25 709
  • 这山里有些沉闷 妈妈在准备晚餐 番薯 红薯 白薯 我来劈柴 我想要条鱼 很久了 父亲说我准是疯了 没有湖没有海哪里...
    江小昨阅读 3,427评论 3 14
  • 前几天坐公交车路过老太原菜馆时,看见摆出了早点摊,吃早餐的人还不少。 因为老太原菜馆就在汾河公园的边上,吃了早餐,...
    龙宝青青阅读 4,082评论 3 6

友情链接更多精彩内容