目前,在 react 中运行不同的 file.js 没有任何争论。所以你需要通过命令弹出你的react应用程序
npm run eject
通过运行它,您将完全控制您的项目。然后你需要修改你的 config/paths.js 中的一些代码
module.exports = {
dotenv: resolveApp('.env'),
appPath: resolveApp('.'),
appBuild: resolveApp(buildPath),
appPublic: resolveApp('public'),
appHtml: resolveApp('public/index.html'),
//appIndexJs: resolveModule(resolveApp, 'src/index'),
appIndexJs: resolveModule(resolveApp, 'src/'+ process.argv[process.argv.length-1]),
appPackageJson: resolveApp('package.json'),
appSrc: resolveApp('src'),
appTsConfig: resolveApp('tsconfig.json'),
appJsConfig: resolveApp('jsconfig.json'),
yarnLockFile: resolveApp('yarn.lock'),
testsSetup: resolveModule(resolveApp, 'src/setupTests'),
proxySetup: resolveApp('src/setupProxy.js'),
appNodeModules: resolveApp('node_modules'),
swSrc: resolveModule(resolveApp, 'src/service-worker'),
publicUrlOrPath,
};
请注意以下几行:
//appIndexJs: resolveModule(resolveApp, 'src/index'),
appIndexJs: resolveModule(resolveApp, 'src/'+ process.argv[process.argv.length-1]),
src/index 表示 npm start 将使用 src/index.js 运行您的应用程序。因此,通过更改代码,您可以使用新文件名传递参数,例如
npm start -- foo
因此,您的应用程序将使用 src/foo.js 中的新文件运行。通常你的论点是最后一项。如果代码不起作用,您可以尝试通过以下方式打印所有参数
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});