Dva: Setelah memulai, buka halaman dan laporkan kesalahan Peringatan: Harap gunakan `require("history").createHashHistory` alih-alih `require("history/createHashHistory")`.

Dibuat pada 17 Mar 2019  ·  16Komentar  ·  Sumber: dvajs/dva

Kode untuk mereproduksi masalah: (Harap berikan kode atau langkah yang dapat direproduksi)

1.dva aplikasi baru
2. Buat webpack.config.js baru dengan konten berikut:
ekspor fungsi default (webpackConfig) {
hapus webpackConfig.resolve.alias['@babel/runtime'];
kembali webpackConfig;
}
2.npm mulai

Perilaku yang diharapkan: (efek normal yang diharapkan)

Browser menampilkan halaman secara normal

Perilaku aktual: (efek aktual)

Output konsol browser Peringatan: Harap gunakan require("history").createHashHistory sebagai ganti require("history/createHashHistory") Dukungan untuk yang terakhir akan dihapus pada rilis besar berikutnya

Versi paket yang digunakan: (versi perpustakaan mana yang bermasalah)

dva-cli versi 0.10.0

Need Reproduce

Komentar yang paling membantu

Apakah dva merasa tidak terawat?Masalah ini masih ada begitu lama, mengapa ditutup?

Semua 16 komentar

WechatIMG24

Tolong berikan langkah-langkah yang dapat direproduksi.

1.dva aplikasi baru
2. Buat webpack.config.js baru dengan konten berikut:
ekspor fungsi default (webpackConfig) {
hapus webpackConfig.resolve.alias['@babel/runtime'];
kembali webpackConfig;
}
2.npm mulai
3. Konsol tampilan browser

index.js:2177 Peringatan: Harap gunakan require("history").createHashHistory daripada require("history/createHashHistory") Dukungan untuk yang terakhir akan dihapus pada rilis utama berikutnya.

Informasi peringatan diabaikan dan tidak mempengaruhi penggunaan, dan akan diselesaikan di versi berikutnya.

1.dva aplikasi baru
2. Buat webpack.config.js baru dengan konten berikut:
ekspor fungsi default (webpackConfig) {
hapus webpackConfig.resolve.alias['@babel/runtime'];
kembali webpackConfig;
}
2.npm mulai
3. Konsol tampilan browser

index.js:2177 Peringatan: Harap gunakan require("history").createHashHistory daripada require("history/createHashHistory") Dukungan untuk yang terakhir akan dihapus pada rilis utama berikutnya.

1.dva aplikasi baru
2. Buat webpack.config.js baru dengan konten berikut:
ekspor fungsi default (webpackConfig) {
hapus webpackConfig.resolve.alias['@babel/runtime'];
kembali webpackConfig;
}
2.npm mulai
3. Konsol tampilan browser

index.js:2177 Peringatan: Harap gunakan require("history").createHashHistory daripada require("history/createHashHistory") Dukungan untuk yang terakhir akan dihapus pada rilis utama berikutnya.

image
Bagaimana masalah ini diselesaikan?Meminta bantuan

@mystylemylife memberikan langkah-langkah untuk mereproduksi. .

@mystylemylife memberikan langkah-langkah untuk mereproduksi. .

@mystylemylife memberikan langkah-langkah untuk mereproduksi. .
Itu terpecahkan. Saya melaporkan kesalahan ketika saya memulai [email protected] , jadi saya menambahkan webpack.config.js dan menghapus '@babel/runtime' bestXie . Tidak ada kesalahan yang dilaporkan, tetapi saya melaporkan kesalahan dari tangkapan layar sebelumnya. Sekarang hapus js ini dan tingkatkan versi roadhog ke 2.5.0-beta.4.

Proyek lama menginstal ulang nodemodule dan melaporkan kesalahan. Lihat masalah [email protected]. <br i="5"/> Perbarui

Proyek lama menginstal ulang nodemodule dan melaporkan kesalahan. Lihat masalah [email protected]<br i="6"/> Perbarui

Cukup tingkatkan versi roadhog ke 2.5.0-beta.4

impor { createBrowserHistory } dari 'history' import { createHashHistory } dari 'history'

Sudah beberapa bulan sekarang, dan itu benar-benar kapal pencuri.

Proyek lama menginstal ulang nodemodule dan melaporkan kesalahan. Lihat masalah [email protected]<br i="7"/> Perbarui

Cukup tingkatkan versi roadhog ke 2.5.0-beta.4

Masalah ini juga akan terjadi saat memutakhirkan versi roadhog ke 2.5.0-beta.4

menyelesaikan:

  1. Di node_modules di folder dva di proyek, ubah lib/index.js
  2. Temukan baris kode ini sebagai berikut
var _createHashHistory = _interopRequireDefault(require("history/createHashHistory"));
  1. Ubah jalur di `memerlukan sebagai berikut:
var _createHashHistory = _interopRequireDefault(require("history").createHashHistory);

Simpan dan tutup kompiler, mulai ulang layanan dengan baik

Apakah dva merasa tidak terawat?Masalah ini masih ada begitu lama, mengapa ditutup?

Selesaikan dengan proxy native console.warn dan console.error

      (() => {
        //过滤掉一些无用的警告、没有价值的报错
        //代理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);
          }
        };
      })();

Saya menulis tambalan, setiap kali sebelum memulai, ganti ./node_modules/dva/lib/index.js require\\("history/createHashHistory"\\) dengan require("history").createHashHistory :

  1. benang tambahkan -D ganti;
  2. Tambahkan file patch.js di root directory, isinya sebagai berikut:
const replace = require("replace");

replace({
  regex: 'require\\("history/createHashHistory"\\)',
  replacement: 'require("history").createHashHistory',
  paths: ['./node_modules/dva/lib/index.js'],
  recursive: true,
  silent: true,
});
  1. Dalam package.json peningkatan dalam kode berikut, dalam start peningkatan sebelum perintah npm run patch && , meningkat "patch": "node ./patch.js" npm perintah:
{
  ...
  "scripts": {
    "start": "npm run patch && cross-env APP_TYPE=site umi dev", // start命令之前先运行patch.js
    ...
    "patch": "node ./patch.js"
  },
  ...
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat