我的任务是将 ReactJS 应用程序中的“react-scripts”2.1.1 更新为更新的内容。我做了什么:1。
- 克隆干净的项目
- 更新“反应脚本”:“2.1.1”->“2.1.8”
- npm 安装
- npm 开始
我面临的第一个问题:
frontend@2.0.0 开始 C:\projects\reactjs-superapp react-app-rewired start
内部/模块/cjs/loader.js:797 抛出错误;^
Error: Cannot find module 'C:\projects\reactjs-superapp\node_modules\react-scripts/config/webpack.config.dev'
Require stack:
C:\projects\reactjs-superapp\node_modules\react-app-rewired\scripts\start.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (C:\projects\reactjs-superapp\node_modules\react-app-rewired\scripts\start.js:9:23)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\\projects\\reactjs-superapp\\node_modules\\react-app-rewired\\scripts\\start.js'
]
}
更新“react-app-rewired”:“1.6.2”->“2.0.3
npm 安装
npm start 从 v2.0 开始,“injectBabelPlugin”助手已被弃用。您可以使用 customize-cra 插件代替 - https://github.com/arackaf/customize-cra#available-plugins
遵循此处找到的解决方案https://github.com/timarney/react-app-rewired/issues/348并替换了现有的
mofules.exports = 函数覆盖 (config, env) { ...... }
至
module.exports = override(
fixBabelImports("import", {
libraryName: "antd", libraryDirectory: "es", style: true // change importing css to less
}),
addLessLoader({
javascriptEnabled: true
})
);
- 添加了“customize-cra”:“^1.0.0”、“postcss-normalize”:“^9.0.0”、“resolve-url-loader”:“^3.1.2”
- npm 安装
- npm 开始
现在开始出现编译错误 ./src/config/config.scss (./node_modules/css-loader??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss !./node_modules/sass-loader/lib/loader.js??ref--6-oneOf-5-3!./src/config/config.scss) @import "~importConfigPath"; ^ 找不到或无法读取要导入的文件:~importConfigPath。在 C:\projects\reactjs-superapp\src\config\config.scss (第 2 行,第 1 列)
这可能是预期的。这 ~importConfigPath 之前在 module.exports 函数中定义如下
config.resolve = {
modules: ['src', 'node_modules'],
extensions: ['.js', '.jsx'],
alias: {
...config.resolve.alias,
"importConfigPath": path.join(__dirname, 'src/view/styles/templates/' + findPara("THEME", "1") + '.scss'),
"importVariablesPath": path.join(__dirname, 'src/view/styles/templates/' + findPara("THEME", "1") + "/colors.scss"),
}
};
现在必须在这个新结构中定义它。这就是我现在迷路的地方。怎么做?