2

在测试material-ui v1.0.0-beta时,我在使用构建时遇到了以下错误webpack 3.8.0。我也遇到了一些其他类似的问题但我希望是否有人可以确认这是一个合法的问题并且仍然被人们看到?我什至添加"react-transition-group": "^2.2.1"package.json,到目前为止还没有运气。在此先感谢您的帮助。

ERROR in ../node_modules/material-ui-next/ButtonBase/Ripple.js
Module not found: Error: Can't resolve 'react-transition-group/Transition' in './node_modules/material-ui-next/ButtonBase'

我有"react-router": "^3.2.0",万一package.json这可以帮助人们了解可能是根本原因。

[更新]在调查时,我删除node_modules并发布npm cache clean了并确保通过发布清除全局缓存npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm。这并没有解决问题。

4

2 回答 2

3

请按照此票证中说明的步骤进行解决:material-ui-next/9356

解决方案摘要 该问题涉及如何webpack在构建时搜索依赖关系并为每个模块建立所有对等依赖关系的依赖关系图。当进一步挖掘时,我注意到material-ui@0.19.4hasreact-transition-group@1.2.1作为它的对等依赖项,而material-ui-next@1.0.0 betahasreact-transition-group@2.2.1作为它的对等依赖项。此外,我怀疑因为我material-ui的项目中有两个版本,当从 导入组件时,从的角度来看material-ui-next,预期的路径是,但显然是由于有两个版本,后来安装在.react-transition-group@2.2.1material-ui-nextproject/node_modulesmaterial-uireact-transition-group@2.2.1material-ui-next

webpack路径配置中,添加以下内容:

module.exports = {
  app: path.resolve(CURRENT_WORKING_DIR, "app"),
  assets: path.resolve(CURRENT_WORKING_DIR, "public", "assets"),
  compiled: path.resolve(CURRENT_WORKING_DIR, "compiled"),
  public: "/assets/",
  modules: path.resolve(CURRENT_WORKING_DIR, "node_modules"),
  extraModules: path.resolve(CURRENT_WORKING_DIR, 
  "node_modules/material-ui-next/node_modules"),
};

最后将额外路径添加到webpack'sresolve属性:

module.exports = {
  modules: [PATHS.app, PATHS.modules, PATHS.extraModules],
  extensions: [".js", ".jsx", ".css"],
};
于 2017-11-28T21:51:41.597 回答
2

解决上述问题:

请安装 react-transition-group

npm i react-transition-group@next --save

于 2018-06-25T11:07:18.367 回答