reactjs - npm start 如何指定index.js以外的启动文件

标签 reactjs server npm-start

我运行 create-react-app 然后切换到目录并运行 npm start。只是想知道如何指定一个与 index.js 不同的文件在服务器上启动

这是我的 package.json 文件:

{
 "name": "todo",
 "version": "0.1.0",
 "private": true,
 "dependencies": {
   "react": "^16.2.0",
   "react-dom": "^16.2.0",
   "react-scripts": "1.1.1"
 },
 "scripts": {
   "start": "react-scripts start",
   "build": "react-scripts build",
   "test": "react-scripts test --env=jsdom",
   "eject": "react-scripts eject"
 }
}

我尝试改变:

"start": "react-scripts start",

"start": "node index.js",  or  "start": "node ./src/index.js",

但这些不起作用

最佳答案

目前,没有理由在 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);
});

关于reactjs - npm start 如何指定index.js以外的启动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49737535/

相关文章:

javascript - 如何使用react-calendar动态渲染列表?

linux - 通过 SMTP 服务器 postfix 发送电子邮件到互联网本地(gmail、outlook、yahoo)

node.js - 尝试运行 React 应用程序时获取 "Html Webpack Plugin: Error: Child compilation failed: Module.createRequire is not a function"

terminal - 如何独立于终端运行Electron应用程序?

php - 如何在 Laravel Blade View 中检查 SQL 服务器版本

git - 为什么在将应用程序部署到 Heroku 时出现此错误?

javascript - 与 .net C# razor 模板进行 react

css - 如何根据页面内容改变背景图片高度

javascript - 用户素材-UI React 字体图标

mysql - Payara 无法与本地主机上的数据库服务器建立连接