React-dnd: CJS ๋ชจ๋“ˆ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์—์„œ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 07์›” 13์ผ  ยท  29์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: react-dnd/react-dnd

๋ฒ„๊ทธ ์„ค๋ช…
์ตœ์‹  CJS ํŒจํ‚ค์ง€๊ฐ€ ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (9.3.3). 9.2.1์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. codesandbox ๋˜๋Š” ์•„๋ž˜ ๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

[ 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)

์ƒ์‹

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

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” 20 ์ผ๊นŒ์ง€ ๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์—ด์–ด๋ณด์„ธ์š”. ๊ฐ์‚ฌ!

๋ชจ๋“  29 ๋Œ“๊ธ€

+1, ๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ webpack ๋นŒ๋“œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ mocha --require @babel/register (์ฆ‰, ๋…ธ๋“œ ํ™˜๊ฒฝ)์€ ๋™์ผํ•œ ๊ฒฐํ•จ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ /dist/cjs [email protected] ์—์„œ ์ƒ์„ฑ ๋œ ๋ฐฐํฌ ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. babel-plugin-module-resolver ๋ฅผ ํ†ตํ•ด ๋ฐ”๋ฒจ ๊ตฌ์„ฑ์—์„œ ์ด๊ฒƒ์„ ํ•ดํ‚นํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ,์ด ์žฌ ์ž‘์„ฑ ๋ฒจ๋กœ์šฐ๋Š” webpack ( [email protected] ) ๋ฐ mocha ( [email protected] )์—์„œ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ ๋ณ€๊ฒฝ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ ์ด๊ฑธ ๋งŒ๋‚ฌ์–ด

@martinschayna ๋‘ ๋ฒˆ์งธ

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

๋˜ํ•œ 9.3.3์ด ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ๊ฒŒ์‹œ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. @darthtrevino ์กฐ๊ธˆ ์ด์ƒํ•ด

์ด ๋ถ€๋ถ„์„ ์ข€ ๋” ํŒŒํ—ค ์ณค์Šต๋‹ˆ๋‹ค.

.d.ts๊ฐ€ ํŒจ์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ด ์‹œ์ ์—์„œ scripts/execute_cjs_replacements.js ๊ทœ์น™์ด ์ข‹์•„ ๋ณด์ด๋Š” ์ด์œ ๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ).

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 []

js ํŒŒ์ผ์˜ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” scripts / execute_cjs_replacements.js์— ๋ˆ„๋ฝ ๋œ ๊ทœ์น™์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ DndContext.js๋Š” node_modules / react-dnd-cjs / lib / common / DndContext.js : 11์˜ dnd-core์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

        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)

์ ˆ๋ฆ„๋ฐœ์ด, ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ 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.

๋‚ด ์ €์žฅ์†Œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  tsconfig์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์›์‚ฌ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒŒ์‹œ ๋œ 9.3.5 ํŒจํ‚ค์ง€์— ์—ฌ์ „ํžˆ ์˜ฌ๋ฐ”๋ฅธ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CJS ๋นŒ๋“œ๋Š” ํ•ญ์ƒ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฏ€๋กœ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๊ฑฑ์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yarn install ์—์„œ๋Š” ์–ด์จŒ๋“  ๋‹ค์‹œ ์ƒ์„ฑ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด .gitignore์—์—†๋Š” ์œ ์ผํ•œ ์ด์œ ๋Š” Lerna๊ฐ€ ๋ฐœ๊ฒฌ ํ•  ์ˆ˜์—†๋Š” ๋ฌธ์ œ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@sandorfr ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ?

CJS์—์„œ ํƒ€์ดํ•‘ ํ•„๋“œ๊ฐ€ ๋ˆ„๋ฝ ๋œ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์˜ค๋ฅ˜๋Š” https://github.com/react-dnd/react-dnd/issues/1468#issuecomment -518488026์ด์ง€๋งŒ ๋‚ด ์ €์žฅ์†Œ๋ฅผ ์ •๋ฆฌํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ค ์„ค์น˜๋ฅผ ํ•œ ๋‹ค์Œ ๊ทธ๊ฒƒ์„ ๊ณ ์ณค๋‹ค ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์œ ์ผํ•œ ๋‚จ์€ ๋ฌธ์ œ๋Š” ๊ฒŒ์‹œ ํ•œ 9.3.5์— ํƒ€๋ฅด๋ณผ์„ ๊ฒ€์‚ฌ ํ•  ๋•Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ž˜๋ชป๋œ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ๋นŒ๋“œ ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ณด๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

create_packages ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ ˆ๋Œ€ URL์„ ์ œ๊ฑฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1 ๋ถ„ ์•ˆ์— ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@sandorfr CJS ํŒจํ‚ค์ง€๋Š” ์ด์ œ 9.3.6์— ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ , ๊ฒŒ์‹œ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ ๋  ๋•Œ ๋Œ€์ฒด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

npm ์„ค์น˜์˜ ๋‚ด์šฉ์€ ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ์ž˜๋ชป ์ฝ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ข‹์•„ ์ง€๊ธˆ ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค :)

์—ฌ์ „ํžˆ ์ž˜๋ชป๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค ...
image

Lerna๊ฐ€ ์–€ ๋งํฌ ๋‚˜ ๋ญ”๊ฐ€๋ฅผ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”.
ํŽธ์ง‘-๋„ค, npm์„ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์น˜ํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์„ ์ž˜๋ผ๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.

์–‘ํ•ด ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒจ์น˜๋ฅผ ์—ฐ์†ํ•ด์„œ ์ž˜๋ผ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ์•„๋งˆ๋„ ํ”„๋ฆฌ ๋ฆด๋ฆฌ์ฆˆ ์˜€์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–‘ํ•ด ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒจ์น˜๋ฅผ ์—ฐ์†ํ•ด์„œ ์ž˜๋ผ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ์•„๋งˆ๋„ ํ”„๋ฆฌ ๋ฆด๋ฆฌ์ฆˆ ์˜€์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :) ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ณ ํ†ต ์Šค๋Ÿฌ์šด์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณต๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :)

์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์€ 9.3.8์ž…๋‹ˆ๊นŒ?

9.3.9 ๋ฐ”๋ผ๊ฑด๋Œ€-9.3.8์—๋Š” lib / ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. prepublishOnly ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ฐฉ์‹์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

9.3.9๋Š” ๋‚ด ์ชฝ์—์„œ ์ข‹์•„ ๋ณด์ธ๋‹ค

@martinschayna ๋‘ ๋ฒˆ์งธ

@sandorfr ์˜ˆ, [email protected] ๋ฐ [email protected] ์ด์ „ ๋ฒ„์ „์ด ์„ค์น˜๋œ ์ƒํƒœ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ babel config์—์„œ ์ถ”์•…ํ•œ ํ•ดํ‚น์„ ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ๊ณ ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : slightly_smiling_face :

9.3.9๋Š” ๋‚ด ์ชฝ์—์„œ ์ข‹์•„ ๋ณด์ธ๋‹ค

์ข‹์•„ ๋ณด์ธ๋‹ค ๐Ÿ’ƒ. CI๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ™•์‹คํžˆ ์•Œ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

๋‚˜๋Š” 20 ์ผ๊นŒ์ง€ ๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์—ด์–ด๋ณด์„ธ์š”. ๊ฐ์‚ฌ!

npm์— ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์€ ์˜ค๋Š˜๋ถ€ํ„ฐ 9.3.4์ž…๋‹ˆ๋‹ค. https://www.npmjs.com/package/react-dnd

npm์— ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์€ ์˜ค๋Š˜๋ถ€ํ„ฐ 9.3.4์ž…๋‹ˆ๋‹ค. https://www.npmjs.com/package/react-dnd

๋ฌธ์ œ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์€ cjs ๋ฆด๋ฆฌ์Šค์—๋งŒ ์ ์šฉ / ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค : https://www.npmjs.com/package/react-dnd-cjs

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰