未找到模块:使用 @rollup/plugin-json 时无法解析“集群”

Posted

技术标签:

【中文标题】未找到模块:使用 @rollup/plugin-json 时无法解析“集群”【英文标题】:Module not found: Can't resolve 'cluster' when using @rollup/plugin-json 【发布时间】:2021-07-05 21:00:31 【问题描述】:

我正在开发一个使用 Babel+TypeScript 的 React 组件库,并且我正在使用 Rollup 创建包,然后我从 React 应用程序中导入组件。

在我将json()@rollup/plugin-json 添加到我的plugins 之前,一切正常。添加后,我最终收到一条错误消息:

Uncaught Error: Cannot find module 'cluster'

删除此插件后,构建工作再次开始,但我无法像这样进行 JSON 导入

import config from './config.json'

在我的库代码中。为了能够从 React 组件库中使用这个插件或 JSON 导入,我需要做些什么额外的事情吗?任何提示将不胜感激!


我的汇总配置:

import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from '@rollup/plugin-babel';
import json from '@rollup/plugin-json';
import pkg from './package.json';

const extensions = ['.js', '.jsx', '.ts', '.tsx'];

export default [
    
        input: 'src/index.ts',
        output: [
            
                format: 'cjs',
                file: pkg.main,
                sourcemap: true
            ,
            
                format: 'es',
                file: pkg.module,
                sourcemap: true
            
        ],
        plugins: [
            peerDepsExternal(),
            resolve( extensions ),
            commonjs(),
            babel(
                extensions,
                babelHelpers: 'runtime',
                exclude: ['node_modules/**']
            ),
            json() // This is the problematic line
        ]
    
];

我的依赖版本:


    "devDependencies": 
        "@babel/core": "^7.13.14",
        "@rollup/plugin-babel": "^5.3.0",
        "@rollup/plugin-commonjs": "^18.0.0",
        "@rollup/plugin-json": "^4.1.0",
        "@rollup/plugin-node-resolve": "^11.2.1",
        "react": "^16.8",
        "react-dom": "^16.8",
        "rollup": "^2.44.0",
        "rollup-plugin-peer-deps-external": "^2.2.4",
        "typescript": "^4.2.3"
    

【问题讨论】:

【参考方案1】:

我在使用 @rollup/plugin-json 插件时遇到了同样的问题,我强烈建议您将 JSON 配置更改为简单的 ts 文件:

import config from './config';

你的文件是这样的:

const config = 
  // ...
;

export default config;

另外,我强烈推荐你使用tsdx 来创建你的库包,它可以节省你很多时间。使用 tsdx 创建一个新库,然后将所有代码迁移到这个很棒的零配置 TypeScript 包开发。


【讨论】:

以上是关于未找到模块:使用 @rollup/plugin-json 时无法解析“集群”的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上未原生找到 RNFirebase 核心模块 - 未修复

未找到模块:错误:无法使用 Webpack 解析“fs”

dotenv 模块未找到错误 pythonanywhere

.scss 文件未找到流模块

模块“.dll”已加载,但未找到入口点

未找到带有故事书模块的 CSS 模块