1.dva рдирдпрд╛ рдРрдк
2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ webpack.config.js рдмрдирд╛рдПрдВ:
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди (webpackConfig) {
рд╣рдЯрд╛рдПрдБ webpackConfig.resolve.alias['@babel/runtime'];
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧ рд▓реМрдЯрд╛рдПрдВ;
}
2.npm рдкреНрд░рд╛рд░рдВрдн
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд╛рдВрддреНрд╡рдирд╛ рдЙрддреНрдкрд╛рджрди рдЪреЗрддрд╛рд╡рдиреА: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ require("history").createHashHistory
рдХреЗ рдмрдЬрд╛рдп require("history/createHashHistory")
ред рдмрд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдбреАрд╡рд╛-рдХреНрд▓реА рд╕рдВрд╕реНрдХрд░рдг 0.10.0
рдХреГрдкрдпрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрджрдо рджреЗрдВред
1.dva рдирдпрд╛ рдРрдк
2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ webpack.config.js рдмрдирд╛рдПрдВ:
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди (webpackConfig) {
рд╣рдЯрд╛рдПрдБ webpackConfig.resolve.alias['@babel/runtime'];
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧ рд▓реМрдЯрд╛рдПрдВ;
}
2.npm рдкреНрд░рд╛рд░рдВрдн
3. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реНрдпреВ рдХрдВрд╕реЛрд▓
index.js: 2177 рдЪреЗрддрд╛рд╡рдиреА: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ require("history").createHashHistory
рдХреЗ рдмрдЬрд╛рдп require("history/createHashHistory")
рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редред
рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
1.dva рдирдпрд╛ рдРрдк
2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ webpack.config.js рдмрдирд╛рдПрдВ:
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди (webpackConfig) {
рд╣рдЯрд╛рдПрдБ webpackConfig.resolve.alias['@babel/runtime'];
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧ рд▓реМрдЯрд╛рдПрдВ;
}
2.npm рдкреНрд░рд╛рд░рдВрдн
3. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реНрдпреВ рдХрдВрд╕реЛрд▓index.js: 2177 рдЪреЗрддрд╛рд╡рдиреА: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
require("history").createHashHistory
рдХреЗ рдмрдЬрд╛рдпrequire("history/createHashHistory")
рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редред
1.dva рдирдпрд╛ рдРрдк
2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ webpack.config.js рдмрдирд╛рдПрдВ:
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди (webpackConfig) {
рд╣рдЯрд╛рдПрдБ webpackConfig.resolve.alias['@babel/runtime'];
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧ рд▓реМрдЯрд╛рдПрдВ;
}
2.npm рдкреНрд░рд╛рд░рдВрдн
3. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реНрдпреВ рдХрдВрд╕реЛрд▓index.js:2177 рдЪреЗрддрд╛рд╡рдиреА: рдХреГрдкрдпрд╛
require("history").createHashHistory
рдмрдЬрд╛рдпrequire("history/createHashHistory")
ред рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреИрд╕реЗ рд╣рд▓ рд╣реЛрддреА рд╣реИ?рдорджрдж рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛
@mystylemylife рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рджреЗрддрд╛ рд╣реИред .
@mystylemylife рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рджреЗрддрд╛ рд╣реИред .
@mystylemylife рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рджреЗрддрд╛ рд╣реИред .
рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ [email protected] рд╢реБрд░реВ рдХрд┐рдпрд╛ , рддреЛ рдореИрдВрдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреА , рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ webpack.config.js рдЬреЛрдбрд╝рд╛ рдФрд░ рдЕрдиреБрд╕рд╛рд░ '@babel/runtime' рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкрд┐рдЫрд▓реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рддреНрд░реБрдЯрд┐ред рдЕрдм рдЗрд╕ рдЬреЗрдПрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рд░реЛрдбрд╣реЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 2.5.0-рдмреАрдЯрд╛.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред
рдкреБрд░рд╛рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдиреЛрдбрдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреАред [email protected] рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦреЗрдВред <br i="5"/> рдореВрд▓ рдкреЛрд╕реНрдЯрд░ рдХреА рддрд░рд╣ рд╣реА
рдкреБрд░рд╛рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдиреЛрдбрдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреАред рдореВрд▓ рдкреЛрд╕реНрдЯрд░ рдХреА рддрд░рд╣ рд╣реА [email protected]<br i="6"/> Update
рд░реЛрдбрд╣реЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 2.5.0-рдмреАрдЯрд╛.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ
'рдЗрддрд┐рд╣рд╛рд╕' рд╕реЗ рдЖрдпрд╛рдд { createBrowserHistory } 'рдЗрддрд┐рд╣рд╛рд╕' рд╕реЗ рдЖрдпрд╛рдд { createHashHistory }
рдЕрдм рдХреБрдЫ рдорд╣реАрдиреЗ рд╣реЛ рдЧрдП рд╣реИрдВ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЪреЛрд░ рдЬрд╣рд╛рдЬ рд╣реИред
рдкреБрд░рд╛рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдиреЛрдбрдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреАред рдореВрд▓ рдкреЛрд╕реНрдЯрд░ рдХреА рддрд░рд╣ [email protected]<br i="7"/> рдЕрдкрдбреЗрдЯ
рд░реЛрдбрд╣реЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 2.5.0-рдмреАрдЯрд╛.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ
рд░реЛрдбрд╣реЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 2.5.0-рдмреАрдЯрд╛.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА
рд╣рд▓ рдХрд░реЗрдВ:
node_modules
рдореЗрдВ dva
рдлрд╝реЛрд▓реНрдбрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рдВрд╢реЛрдзрд┐рдд lib/index.js
var _createHashHistory = _interopRequireDefault(require("history/createHashHistory"));
var _createHashHistory = _interopRequireDefault(require("history").createHashHistory);
рд╕рдВрдХрд▓рдХ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВ, рд╕реЗрд╡рд╛ рдХреЛ рдареАрдХ рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ
рдХреНрдпрд╛ dva рдЕрдиреБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ?рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдкреНрд░реЙрдХреНрд╕реА рджреЗрд╢реА рдХрдВрд╕реЛрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд░реЗрдВред рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рдХрдВрд╕реЛрд▓.рддреНрд░реБрдЯрд┐
(() => {
//ш┐Зц╗дцОЙф╕Аф║ЫцЧачФичЪДшнжхСКуАБц▓бцЬЙф╗╖хА╝чЪДцКещФЩ
//ф╗гчРЖconsole.warnцЦ╣ц│Х
const _consoleWarn = console.warn;
console.warn = (...rest) => {
if (
![
'react-error-overlay is not meant for use in production. You should ensure it is not included in your build to reduce bundle size.',
'Warning: componentWillReceiveProps has been renamed',
'Warning: componentWillUpdate has been renamed',
].some((item) => rest[0].indexOf(item) !== -1)
) {
_consoleWarn(...rest);
}
};
//ф╗гчРЖconsole.error
const _consoleError = console.error;
console.error = (...rest) => {
if (
![
`Warning: Please use \`require("history").createHashHistory\` instead of \`require("history/createHashHistory")\`. Support for the latter will be removed in the next major release.`,
'ui socket init',
].includes(rest[0].toString())
) {
_consoleError(...rest);
}
};
})();
рдореИрдВрдиреЗ рдПрдХ рдкреИрдЪ рд▓рд┐рдЦрд╛, рд╣рд░ рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, ./node_modules/dva/lib/index.js
require\\("history/createHashHistory"\\)
рдХреЛ require("history").createHashHistory
рдмрджрд▓реЗрдВ:
patch.js
рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:const replace = require("replace");
replace({
regex: 'require\\("history/createHashHistory"\\)',
replacement: 'require("history").createHashHistory',
paths: ['./node_modules/dva/lib/index.js'],
recursive: true,
silent: true,
});
package.json
рд╡реГрджреНрдзрд┐ рдореЗрдВ, start
рдХрдорд╛рдВрдб рд╕реЗ рдкрд╣рд▓реЗ npm run patch &&
рд╡реГрджреНрдзрд┐, "patch": "node ./patch.js"
npm
рдЖрджреЗрд╢:{
...
"scripts": {
"start": "npm run patch && cross-env APP_TYPE=site umi dev", // startхС╜ф╗дф╣ЛхЙНхЕИш┐РшбМpatch.js
...
"patch": "node ./patch.js"
},
...
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрдпрд╛ dva рдЕрдиреБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ?рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?