我正在维护一个react组件库,它使用chart.js作为依赖项(而不是peerDependency)。
我将chart.js从3.9.1升级到了4.0.1。
我的库仍然编译得很好,但现在当我导入库时,它在我的react应用程序上抛出了一个错误:Module not found: Error: Package path . is not exported from package node_modules/chart.js
我使用汇总构建所有内容,以下是我的配置:
import path from 'path';
import babel from '@rollup/plugin-babel';
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import terser from '@rollup/plugin-terser';
import postcss from 'rollup-plugin-postcss';
import typescript from '@rollup/plugin-typescript';
import image from '@rollup/plugin-image';
import json from '@rollup/plugin-json';
import copy from 'rollup-plugin-copy';
import autoprefixer from 'autoprefixer';
import postcssUrl from 'postcss-url';
import pkg from './package.json' assert { type: 'json' };
import {fileURLToPath} from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const { dependencies = {}, peerDependencies = {} } = pkg;
const externals = [...Object.keys(dependencies), ...Object.keys(peerDependencies)];
const src = path.resolve(__dirname, 'src');
const input = path.resolve(src, 'index.ts');
const assets = path.resolve(src, 'assets');
const dest = path.resolve(__dirname, 'dist');
export default [
{
input,
external: (id) => externals.some((dep) => id === dep || id.startsWith(`${dep}/`)),
plugins: [
typescript({ tsconfig: './tsconfig.json' }),
commonjs(),
json(),
resolve({ browser: true }),
babel({
extensions: ['.ts', '.js', '.tsx', '.jsx'],
}),
image(),
postcss({
plugins: [
autoprefixer,
postcssUrl({
url: 'inline',
basePath: assets,
}),
],
}),
copy({
targets: [
{ src: 'src/**/_*.scss.d.ts', dest },
{ src: 'src/**/_*.scss', dest },
],
}),
],
output: [
{
file: pkg.main,
format: 'cjs',
},
{ name: pkg.name, file: pkg.module, format: 'es' },
{
name: pkg.name,
file: pkg.browser,
format: 'umd',
globals: {
react: 'React',
},
},
{
name: pkg.name,
file: pkg['browser:min'],
format: 'umd',
globals: {
react: 'React',
},
plugins: [terser()],
},
],
},
];
有人知道它为什么这样做吗?
我尝试删除node_modules和package-lock.json,并在我的库和前端应用程序上重新安装,但我仍然有相同的错误。
我尝试从文档中提到的"chart. js/auto"导入,但它抛出:Module not found: Error: Package path ./auto is not exported from package node_modules/chart.js
我看了一下node_modules/chart.js/package.json文件,那里有一组定义良好的导出。但是由于它是随升级而来的,而且没有其他库向我抛出过这个错误,我猜它来自升级。
1条答案
按热度按时间e4yzc0pl1#
发现了这个bug。我以为是库本身的问题。由于package.json文件中缺少条件子路径,所以不需要这个bug。我无能为力。我会降级,直到修复。