Win7下使用react-app-rewired提示babel-loader no found

按照新版官网在 “create-react-app 中使用” 的文档,使用react-app-rewired。
start时闪过babel-loader no found的提示,CSS不能正常加载。
如果重新install babel-loader或者babel-runtime会removed一些文件,然后提示react-app-rewired不存在。
环境:
Win7 + node.js 6.11.0 + npm 5.3.0
create-react-app 1.4.0
"antd": "^2.11.0"
"babel-loader": "7.0.0",
"babel-plugin-import": "^1.2.1",
"react-app-rewired": "^1.2.2"

使用原先的eject方法没有问题


按照大熊的方法改了确实可行。谢谢
但是每次yarn add后都要找到这个文件,删除/一次
还有一些某明奇妙的错误。
所以我还是老老实实的eject吧

阅读 5.4k
4 个回答

作者源代码有问题,需要修改源码,把 node_modules/react-app-rewire/index.js 中rule.loader.indexOf("babel-loader/") != -1;的'/'删掉

GitHub issue

有没有其他的解决方案

主要是因为create-react-app的webpack脚本的规则改了,react-app-rewired的作者没及时更新,可以等待修复。

建议不要eject,react-app-rewired这个工具还是很方便的,不用暴露出那么一大坨配置。如果你想更改内置的webpack配置,你可以直接在config-overrides文件里添加。
比如添加alias:

var path = require('path')
const { injectBabelPlugin } = require('react-app-rewired');

module.exports = function override(config, env) {
  config.resolve.alias['@'] = resolve('src')    // 往config内注入配置
  config.resolve.alias['@cp'] = resolve('src/components')
  config = injectBabelPlugin(['import', { libraryName: 'antd', style: 'css' }], config);
  return config;
};

function resolve (dir) {
  return path.join(__dirname, dir)
}
新手上路,请多包涵

react-app-rewire中less loder怎样添加

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题