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

作者: MR__Fan | 来源:发表于2016-10-09 17:50 被阅读1337次

    今天完成了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包终于可用了!

    相关文章

      网友评论

      • hylerrix:这个项目可以放出开源仓库地址么?如果可以的话,我们就能知道 "server": "node app.babel.js" 这句话的语境啦

      本文标题:发布es6写的npm包遇到了这个坑

      本文链接:https://www.haomeiwen.com/subject/ubxmyttx.html