rollup打包找不到路径问题?

"build:dev": "rollup --bundleConfigAsCjs --config scripts/rollup/react.config.js"
执行命令pnpm build:dev命令报错:
[!] Error: ENOENT: no such file or directory, open '/Users/zgwww/React18/packages/react/package.json'

但是项目目录是存在React18/packages/react/package.json'文件的

react.config.js代码如下:

import { getPackageJSON, resolvePkgPath, getBaseRollupPlugins } from './utils';
const { name } = getPackageJSON('react');
//react包的路径
const pkgPath = resolvePkgPath(name);
//react产物路径
const pkgDistPath = resolvePkgPath(name, true);

export default {
    input: `${pkgPath}/${module}`,
    output: {
        file: `${pkgDistPath}/index.js`,
        name: 'index.js',
        //支持Commandjs和EsModule
        format: 'umd'
    },
    plugins: getBaseRollupPlugins()
};

utils代码如下:

import path from 'path';
import fs from 'fs';

import ts from 'rollup-plugin-typescript2';
import cjs from '@rollup/plugin-commonjs';

const pkgPath = path.resolve(__dirname, '../../packages');
//打出来很多包,react包,react-dom包,node标准下是node_modules
const distPath = path.resolve(__dirname, '../../dist/node_modules');

export function resolvePkgPath(pkgName, isDist) {
    if (isDist) {
        return `${distPath}/${pkgName}`;
    }
    return `${pkgPath}/${pkgName}`;
}

export function getPackageJSON(pkgName) {
    // ...包路径
    const path = `${resolvePkgPath(pkgName)}/package.json`;
    console.log('123');
    const str = fs.readFileSync(path, { encoding: 'utf-8' });
    console.log('234');
    return JSON.parse(str);
}

export function getBaseRollupPlugins({ typescript = {} } = {}) {
    return [cjs(), ts(typescript)];
}

请问老师们,这是什么问题导致出现找不到文件目录的

阅读 2.9k
1 个回答

建议进入 react 目录,然后执行 pwd 查看下真实的路径与 getPackageJSON 中的 path 获取到的是否一致,由于 git 大小写不敏感的原因,VSCode 中所展示的路径大小写与真实路径可能有所出入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题