React-dnd: Impor modul CJS rusak terbaru

Dibuat pada 13 Jul 2019  ·  29Komentar  ·  Sumber: react-dnd/react-dnd

Jelaskan bugnya
Paket CJS terbaru sepertinya rusak (9.3.3). Menggunakan 9.2.1 bekerja. Lihat kode dan kotak atau log di bawah ini:

[ error ] ./node_modules/react-dnd-cjs/lib/common/DndContext.js
Module not found: Can't resolve 'dnd-core' in '/mnt/c/dev/foobar/app/node_modules/react-dnd-cjs/lib/common'
{ Error: Cannot find module 'dnd-core'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)

Reproduksi

https://codesandbox.io/embed/wonderful-turing-mqywk

bug

Komentar yang paling membantu

Saya keluar hingga tanggal 20 - silakan buka kembali ini jika masalah terus berlanjut. Terima kasih!

Semua 29 komentar

+1, dalam skenario saya webpack build berfungsi dengan baik tetapi mocha --require @babel/register (yaitu lingkungan node) memberikan hasil yang salah yang sama.

Juga /dist/cjs subpohon distribusi yang dihasilkan di [email protected] tampaknya rusak, saya telah mencoba meretas ini dalam konfigurasi babel melalui babel-plugin-module-resolver seperti ini tetapi tidak berhasil:

  [
    "babel-plugin-module-resolver",
    {
      alias: {
        "^react-dnd$": "\\0/dist/cjs",
        "^react-dnd-.*$": "\\0/dist/cjs",
        "^dnd-.*$": "\\0/dist/cjs"
      }
    }
  ]

Singkat cerita, penulisan ulang di bawah ini berfungsi dalam webpack (dengan [email protected] ) dan juga dalam mocha (dengan [email protected] ) tanpa perubahan pada kode sumber aplikasi:

  [
    "babel-plugin-module-resolver",
    {
      alias: {
        "^react-dnd$": "\\0-cjs"
      }
    }
  ]

Menghadapi masalah yang sama ini.

Saya menemukan ini juga

@martinschayna apakah Anda

/node_modules/dnd-core/dist/esm/index.js:1
(function (exports, require, module, __filename, __dirname) { export * from './interfaces';

Juga saya perhatikan bahwa 9.3.3 belum dipublikasikan untuk semua paket. Sepertinya agak aneh @darthtrevino ?

Saya melakukan penggalian lagi di sekitar ini,

Tampaknya .d.ts tidak ditambal, (tidak yakin mengapa pada titik ini karena aturan scripts/execute_cjs_replacements.js terlihat bagus bagi saya).

process module requires in /Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd
*.d.ts require replacement [ { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/DndContext.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/DndProvider.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/DragPreviewImage.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/DragSourceMonitorImpl.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/DropTargetMonitorImpl.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/index.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/registration.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/SourceConnector.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/TargetConnector.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/common/wrapConnectorHooks.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/createSourceFactory.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/createTargetFactory.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/decorateHandler.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/disposables.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/DragLayer.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/DragSource.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/DropTarget.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/index.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/interfaces.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/decorators/utils.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/index.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/internal/drag.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/internal/drop.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/internal/useCollector.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/internal/useDragDropManager.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/internal/useMonitorOutput.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/useDrag.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/useDragLayer.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/hooks/useDrop.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/index.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/interfaces/connectors.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/interfaces/hooksApi.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/interfaces/index.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/interfaces/monitors.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/interfaces/options.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/utils/cloneWithRef.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/utils/isRef.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/utils/isValidType.js',
    hasChanged: false },
  { file:
     '/Users/cautexier/projects/react-dnd/packages/alternative_builds/cjs/react-dnd/lib/utils/js_utils.js',
    hasChanged: false } ]
js from replacement []
*.d.ts from from replacement []
*.d.ts from import replacement []

Saya yakin ada aturan yang hilang di scripts / execution_cjs_replacements.js untuk mengganti impor dalam file js juga. Jadi DndContext.js tidak mencoba mengimpor dari dnd-core di node_modules / react-dnd-cjs / lib / common / DndContext.js: 11.

        let jsFromReplaceSpec = {
            files: `${file}/lib/**/*.js`,
            from: esmLibs.map(esmLib => new RegExp(`from '${esmLib}'`, 'g')),
            to: esmLibs.map(esmLib => `from '${esmLib}-cjs'`),
        }
        replace.sync(jsFromReplaceSpec)

Pincang, saya akan mengambil langkah untuk memperbaiki proses rilis.

Anda baru saja melakukan beberapa jalur abolute: https://github.com/react-dnd/react-dnd/search?q=christrevino&unscoped_q=christrevino

yarn build
yarn run v1.15.2
$ tsc
error TS6053: File '/Users/christrevino/Workspace/oss/react-dnd/packages/core/react-dnd/src/index.ts' not found.


Found 1 error.

error Command failed with exit code 2.

Saya membersihkan repo saya dan dapat menjalankan build meskipun ada tsconfig.

Menggunakan tautan benang saya dapat membuat semuanya berfungsi tetapi tampaknya paket 9.3.5 yang diterbitkan masih tidak menyertakan file yang benar.

Build CJS selalu dimaksudkan untuk dibuat secara dinamis, jadi saya tidak terlalu khawatir tentang jalur absolut di dalamnya. Pada yarn install mereka harus dibuat ulang. Satu-satunya alasan mengapa mereka tidak menggunakan .gitignore adalah karena ada masalah dengan Lerna yang tidak dapat mendeteksi mereka jika ada.

@sandorfr jenis kesalahan apa yang Anda lihat setelah bangunan Anda selesai?

Saya melihat bahwa bidang pengetikan hilang di CJS - Saya akan melakukan rilis lain untuk itu

Hanya kesalahan di atas https://github.com/react-dnd/react-dnd/issues/1468#issuecomment -518488026, tetapi itu diselesaikan dengan membersihkan repo saya. Saya kira pemasangan benang yang saya lakukan kemudian memperbaikinya.

Satu-satunya masalah yang tersisa adalah bahwa 9.3.5 yang Anda terbitkan tampaknya tidak menyertakan perubahan saat Anda memeriksa tarball, Anda masih mendapatkan impor yang salah.

Jika saya melihat paket yang saya buat secara lokal, mereka baik-baik saja.

Saya menghapus URL absolut dari skrip create_packages, itu akan selesai dalam satu menit

@sandorfr Paket CJS sekarang diterbitkan di 9.3.6

Hmm, menurut saya skrip pengganti tidak dijalankan saat publikasi terpicu.

Konten dari npm install terlihat oke, saya pasti salah membaca sesuatu di sana.

Ok coba sekarang :)

itu masih file yang salah ...
image

Lerna pasti sedang menyiapkan tautan benang atau sesuatu - beri saya waktu sebentar
Edit - ya, menginstal dengan npm di direktori lain mereproduksi ini - saya akan memotong yang lain ..

Terima kasih atas kesabaran Anda, saya minta maaf karena telah memotong banyak tambalan berturut-turut. Itu mungkin seharusnya prarilis.

Terima kasih atas kesabaran Anda, saya minta maaf karena telah memotong banyak tambalan berturut-turut. Itu mungkin seharusnya prarilis.

Terima kasih atas reaktivitasnya :) Saya tahu betapa menyakitkan masalah seperti ini. Jadi saya bisa berhubungan :)

versi yang benar adalah 9.3.8?

9.3.9 semoga - 9.3.8 tidak memiliki lib / direktori. Ada yang tidak beres dengan cara menjalankan skrip prepublishOnly.

9.3.9 terlihat bagus di sisi saya

@martinschayna apakah Anda

@sandorfr ya, ini berfungsi dengan versi yang lebih lama dari [email protected] dan [email protected] terpasang. Saya belum mencobanya dengan versi yang lebih baru, tetapi saya tidak sabar untuk menghapus peretasan jelek saya dari babel config: little_smiling_face:

9.3.9 terlihat bagus di sisi saya

Itu memang terlihat bagus 💃. Saya pasti akan tahu setelah CI selesai :)

Saya keluar hingga tanggal 20 - silakan buka kembali ini jika masalah terus berlanjut. Terima kasih!

Bisakah Anda mempublikasikan di npm? Yang terbaru tersedia adalah 9.3.4 pada hari ini https://www.npmjs.com/package/react-dnd

Bisakah Anda mempublikasikan di npm? Yang terbaru tersedia adalah 9.3.4 pada hari ini https://www.npmjs.com/package/react-dnd

perbaikan yang dimaksud hanya berlaku / mempengaruhi rilis cjs: https://www.npmjs.com/package/react-dnd-cjs

Apakah halaman ini membantu?
0 / 5 - 0 peringkat