create-react-app配置多页应用(个人笔记,非教程)

配置多页应用相当于配置多个项目,单页应用相当于值配置一个项目,
执行命令

npm run eject

config/paths.js

module.exports = {
	// 这些是默认
  dotenv: resolveApp('.env'),
  appPath: resolveApp('.'),
  appBuild: resolveApp('build'),
  appPublic: resolveApp('public'),
  // 这些是默认 end
	//多个应用的配置
  appHtml: resolveApp('public/index.html'),
  appQuery: resolveApp('public/query.html'),
  appTicket: resolveApp('public/ticket.html'),
  appOrder: resolveApp('public/order.html'),
  appIndexJs: resolveModule(resolveApp, 'src/pages/index/index'),
  appQueryJs: resolveModule(resolveApp, 'src/pages/query/index'),
  appTicketJs: resolveModule(resolveApp, 'src/pages/ticket/index'),
  appOrderJs: resolveModule(resolveApp, 'src/pages/order/index'),
	//多个应用的配置 end
  
  // 这些是默认
  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'),
  publicUrl: getPublicUrl(resolveApp('package.json')),
  servedPath: getServedPath(resolveApp('package.json')),
  // 这些是默认 end
};

config/webpack.config

entry :{
      index:[paths.appIndexJs,isEnvDevelopment &&require.resolve('react-dev-utils/webpackHotDevClient')].filter(Boolean),
      order:[paths.appOrderJs,isEnvDevelopment &&require.resolve('react-dev-utils/webpackHotDevClient')].filter(Boolean),
      tiket:[paths.appTicketJs,isEnvDevelopment &&require.resolve('react-dev-utils/webpackHotDevClient')].filter(Boolean),
      query:[paths.appQueryJs,isEnvDevelopment &&require.resolve('react-dev-utils/webpackHotDevClient')].filter(Boolean)
    },

 output: {
      // The build folder.
      path: isEnvProduction ? paths.appBuild : undefined,
      // Add /* filename */ comments to generated require()s in the output.
      pathinfo: isEnvDevelopment,
      // There will be one main bundle, and one file per asynchronous chunk.
      // In development, it does not produce real files.
      filename: isEnvProduction
        ? 'static/js/[name].[contenthash:8].js'
        : isEnvDevelopment && 'static/js/[name].js',//这一行需要修改,固定写法

同时在plugins配置项中复制几个 HtmlWebpackPlugin,其中需要更改的部分为

new HtmlWebpackPlugin(
        Object.assign(
          {},
          {
            inject: true,
            template: paths.appHtml,
            filename:"index.html",//HTML的文件
            chunks:["index"]// 需要引入js文件名的开头
          },

同时添加相应的HTML文件和创建每个页面对应的项目文件夹
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值