目前,没有理由在 React 中运行不同的 file.js。所以你需要通过命令弹出你的反应应用程序
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);
});