经过我们大半年的努力,Dbox-UI 终于完成了 V1.0 的开发,开心脸。
以为只要将开发的代码放到 lib 下,然后执行如下命令就 Game Over了
npm adduser
npm publish
然而。。。
我们出现了几个问题:
- 手动将代码拷到 lib 下,只要改动一点,就得重新拷贝,效率极低
- 代码是 ES6 语法,通常node_modules 下面的库在使用者使用时是不会让babel 进行转换的
- 代码中引入的是 Less 文件
- 网站代码和组件代码在同一分支导致了很多无法想象的问题,例如eslint的版本升级到5.9.0,会导致网站DEMO无法运行等问题
报错信息:
ERROR in ./~/_react-dragme@1.0.11@react-dragme/src/index.js
Module parse failed: g:\gitspace\react-dragme\node_modules\_react-dragme@1.0.11@react-dragme\src\index.js Unexpected token (109:16)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (109:16)
at Parser.pp$4.raise (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:2221:15)
at Parser.pp.unexpected (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:603:10)
at Parser.pp$3.parseExprAtom (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1822:12)
at Parser.pp$3.parseExprSubscripts (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1715:21)
at Parser.pp$3.parseMaybeUnary (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1692:19)
at Parser.pp$3.parseExprOps (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1637:21)
at Parser.pp$3.parseMaybeConditional (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1620:21)
at Parser.pp$3.parseMaybeAssign (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1597:21)
at Parser.pp$3.parseParenAndDistinguishExpression (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1861:32)
at Parser.pp$3.parseExprAtom (g:\gitspace\react-dragme\node_modules\_acorn@3.3.0@acorn\dist\acorn.js:1796:19)
@ ./app.js 25:19-42
webpack: Failed to compile.
遇到这些问题后,我们参考了 antd-tools 和 youzan/zent
scripts
我们在项目根目录下多加了一个文件夹 scripts,用于预发布的打包
es 和 lib 文件夹代码拷贝
ES6 转换成 ES5 语法
"scripts": {
"build": "babel src -d lib",
},