经过我们大半年的努力,Dbox-UI 终于完成了 V1.0 的开发,开心脸。
以为只要将开发的代码放到 lib 下,然后执行如下命令就 Game Over了

  1. npm adduser
  2. npm publish

然而。。。

我们出现了几个问题:

  • 手动将代码拷到 lib 下,只要改动一点,就得重新拷贝,效率极低
  • 代码是 ES6 语法,通常node_modules 下面的库在使用者使用时是不会让babel 进行转换的
  • 代码中引入的是 Less 文件
  • 网站代码和组件代码在同一分支导致了很多无法想象的问题,例如eslint的版本升级到5.9.0,会导致网站DEMO无法运行等问题

报错信息:

  1. ERROR in ./~/_react-dragme@1.0.11@react-dragme/src/index.js
  2. Module parse failed: g:\gitspace\react-dragme\node_modules\_react-dragme@1.0.11@react-dragme\src\index.js Unexpected token (109:16)
  3. You may need an appropriate loader to handle this file type.
  4. SyntaxError: Unexpected token (109:16)
  5. at Parser.pp$4.raise (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:2221:15)
  6. at Parser.pp.unexpected (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:603:10)
  7. at Parser.pp$3.parseExprAtom (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1822:12)
  8. at Parser.pp$3.parseExprSubscripts (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1715:21)
  9. at Parser.pp$3.parseMaybeUnary (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1692:19)
  10. at Parser.pp$3.parseExprOps (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1637:21)
  11. at Parser.pp$3.parseMaybeConditional (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1620:21)
  12. at Parser.pp$3.parseMaybeAssign (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1597:21)
  13. at Parser.pp$3.parseParenAndDistinguishExpression (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1861:32)
  14. at Parser.pp$3.parseExprAtom (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1796:19)
  15. @ ./app.js 25:19-42
  16. webpack: Failed to compile.

遇到这些问题后,我们参考了 antd-toolsyouzan/zent

scripts

我们在项目根目录下多加了一个文件夹 scripts,用于预发布的打包

es 和 lib 文件夹代码拷贝

ES6 转换成 ES5 语法

  1. "scripts": {
  2. "build": "babel src -d lib",
  3. },

Less 转换成 Css 语法