使用create-react-app创建库

Ido*_*Ran 8 javascript reactjs create-react-app

我正在尝试创建一个React-Redux库,我正在尝试使用create-react-app来获取样板代码,但它在构建脚本中包含了与appHtml无关的内容.

有没有办法将弹出的create-react-app转换为库 - 特别是我需要将所有js文件打包成一个,而只是通过babel传递它们并为每个React组件生成单独的文件?

mad*_*ox2 12

我已经设法构建库而不会弹出并使用create react app的内部依赖项.我用它测试过react-scripts@0.9.5.首先你需要安装babel-cli:

npm install --save-dev babel-cli
Run Code Online (Sandbox Code Playgroud)

创建.babelrc包含内容的文件:

{
  "presets": ["react-app"]
}
Run Code Online (Sandbox Code Playgroud)

然后将脚本添加到package.json:

"compile": "NODE_ENV=production babel src --out-dir lib --copy-files",
Run Code Online (Sandbox Code Playgroud)

最后运行:

npm run compile
Run Code Online (Sandbox Code Playgroud)

这将编译所有源srclib目录,只需复制剩余的文件.不要忘记在package.json(例如"main"="lib/index.js")中声明主文件.

但有一点需要注意.如果您使用的文件无法使用babel编译(例如css或字体),那么您的库的用户需要设置适当的(webpack)加载器.

  • 对于当前的`react-scripts @ 2.1.3`(使用Babel 7)而不是`babel-cli`安装`@ babel / cli`和`@ babel / preset-react` (3认同)
  • 直接使用 babel 创建项目会更容易,还是在这种情况下 create-react-app 仍然为您做很多事情? (3认同)
  • 如果您使用的是Windows,则需要添加cross-env才能使上述编译命令起作用:`npm install --save-dev cross-env`,`“ compile”:“ cross-env NODE_ENV = production babel src --out-dir lib --copy-files“,` (2认同)