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

错误信息
错误信息

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

解决思路:

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

实施方案:

  1. 在项目根目录下创建 .babelrc 文件,并写入转译规则:

    1
    2
    3
    4
    5
    {
    "presets": ["es2015", "stage-2"],
    "plugins": ["transform-runtime"],
    "comments": false
    }
  2. 修改 package.json 文件:

    1
    2
    3
    4
    5
    6
    7
    "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包终于可用了!