小编vma*_*sin的帖子

npm 模块上的钩子调用无效

首先链接到 repo:https : //github.com/vmarchesin/react-konami-code

您应该能够构建它(确保取消注释导出src/index.js)并链接到您的项目。也可以尝试使用npm i -S react-konami-code@2.0.0-beta.0并获取钩子的错误。我取下了钩子,2.0.0-beta.1因为它坏了。

问题描述

我为我的 npm 模块创建了一个自定义钩子,它在发布或用作模块后不起作用。我怀疑问题在于 webpack 如何捆绑它,但我无法解决它。

采取的步骤

  • 我确保在我的 webpack 配置中声明reactreact-dom作为外部对象。
externals: [
  {
    react: {
      root: 'React',
      commonjs2: 'react',
      commonjs: 'react',
      amd: 'react',
    },
    'react-dom': {
      root: 'ReactDOM',
      commonjs2: 'react-dom',
      commonjs: 'react-dom',
      amd: 'react-dom',
    },
  },
],
Run Code Online (Sandbox Code Playgroud)
  • 声明reactreact-dompeerDependenciespackage.json
"peerDependencies": {
  "react": "^16.13.1",
  "react-dom": "^16.13.1"
},
Run Code Online (Sandbox Code Playgroud)
  • 钩子正在工作。如果我声明并使用它,它就会起作用。如果我从模块中导入它(或使用 npm 链接),则不会。这是钩子的代码:
externals: [
  {
    react: {
      root: …
Run Code Online (Sandbox Code Playgroud)

npm reactjs webpack babeljs react-hooks

7
推荐指数
1
解决办法
1797
查看次数

标签 统计

babeljs ×1

npm ×1

react-hooks ×1

reactjs ×1

webpack ×1