描述错误
最新的CJS软件包似乎已损坏(9.3.3)。 使用9.2.1的作品。 请参阅codeandbox或以下日志:
[ 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)
再生产
+1,在我的场景中, webpack
构建可以正常使用,但是mocha --require @babel/register
(即节点环境)给出了同样的错误结果。
同样在[email protected]
/dist/cjs
生成的分发子树似乎已损坏,我试图通过babel-plugin-module-resolver
在babel配置中修改它,就像这样,但没有成功:
[
"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 []
我相信scripts / execute_cjs_replacements.js中缺少一条规则来替换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)
me脚,我将努力解决发布过程。
尽管使用了tsconfig,我还是清理了仓库并能够运行构建。
使用yarn link我可以使事情工作,但似乎已发布的9.3.5软件包仍未包含正确的文件。
CJS构建始终旨在动态生成,因此我不太担心它们中的绝对路径。 无论如何,应该在yarn install
上重新生成它们。 它们不在.gitignore中的唯一原因是Lerna无法检测到它们的问题。
@sandorfr构建完成后会看到哪些错误?
我确实看到CJS中缺少类型字段-我将为此做另一个发行
只是上面https://github.com/react-dnd/react-dnd/issues/1468#issuecomment -518488026上的错误,但已通过清理我的仓库解决了。 我猜我安装了纱线然后将其修复。
唯一剩下的问题是,当您检查tarball时,您发布的9.3.5似乎未包含所做的更改,您仍然得到错误的导入。
如果我查看本地构建的软件包,那很好。
我正在从create_packages脚本中删除绝对URL,应该在一分钟内启动
@sandorfr CJS软件包现在在9.3.6发布。
嗯,我不认为发布触发器时正在运行替换脚本。
npm install的内容看起来还不错,我一定在这里误读了一些内容。
好吧,现在尝试:)
仍然是错误的文件...
莱娜一定在设置纱环或其他东西-给我一点时间
编辑-是的,将npm安装在另一个目录中可以重现此内容-我将剪切另一个。
多谢您的耐心配合,我们为您连续削减一堆补丁表示歉意。 这些可能应该是预发行版本。
多谢您的耐心配合,我们为您连续削减一堆补丁表示歉意。 这些可能应该是预发行版本。
感谢您的反应性:)我知道这种问题有多痛苦。 所以我可以联系:)
正确的版本是9.3.8?
希望9.3.9-9.3.8没有lib /目录。 prepublishOnly脚本的执行方式有些麻烦。
9.3.9在我看来不错
@martinschayna你第二次
@sandorfr是的,它可以与给定的[email protected]
和[email protected]
较旧版本一起使用。 我尚未尝试使用较新的版本,但是我很期待从babel config中删除我的丑陋的hack: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
最有用的评论
我要等到20日-如果问题仍然存在,请随时重新打开。 谢谢!