"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)];
}
请问老师们,这是什么问题导致出现找不到文件目录的
建议进入 react 目录,然后执行
pwd
查看下真实的路径与 getPackageJSON 中的 path 获取到的是否一致,由于 git 大小写不敏感的原因,VSCode 中所展示的路径大小写与真实路径可能有所出入。