我正在尝试构建一个带有 2 个入口点的 React 应用程序,一个用于应用程序,一个用于管理面板。
我从 Create React App V2 开始,并关注这个 gitHub 问题线程https://github.com/facebook/create-react-app/issues/1084和本教程http://imshuai.com/create-react-app -多个入口点/。
我正在尝试移植从 CRA V1 添加多个入口点的说明以在 V2 中工作,但我想我遗漏了一些东西。
弹出 CRA 后,这些是我更改/添加到 path.js 的路径:
module.exports = {
appBuild: resolveApp('build/app'),
appPublic: resolveApp('public/app'),
appHtml: resolveApp('public/app/index.html'),
appIndexJs: resolveModule(resolveApp, 'src/app'),
appSrc: resolveApp('src'),
adminIndexJs: resolveModule(resolveApp, 'src/admin'),
adminSrc: resolveApp('src'),
adminPublic: resolveApp('public/admin'),
adminHtml: resolveApp('public/admin/index.html'),
};
Run Code Online (Sandbox Code Playgroud)
我已将这些入口点添加到 webpack:
entry: {
app: [
isEnvDevelopment &&
require.resolve('react-dev-utils/webpackHotDevClient'),
paths.appIndexJs,
].filter(Boolean),
admin: [
isEnvDevelopment &&
require.resolve('react-dev-utils/webpackHotDevClient'),
paths.adminIndexJs,
].filter(Boolean)
},
output: {
path: isEnvProduction ? paths.appBuild : undefined, …
Run Code Online (Sandbox Code Playgroud) 我在 main.ts 中添加了一个全局属性,并尝试在组件中访问它。但是我收到错误:
Property '$const' does not exist on type 'ComponentPublicInstance<{}, {}, {}, {}, {}, EmitsOptions, {}, {}, false, ComponentOptionsBase<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, {}>>'.Vetur(2339)
Run Code Online (Sandbox Code Playgroud)
我认为我需要增强类型,typescript 现在认为 $const 是任何类型,但是我不知道如何在 Vue 3 中执行此操作,文档中也没有提及。
主要.ts
import { createApp } from "vue";
import App from "./App.vue";
import store from "./store";
import * as constants from "@constants";
const app = createApp(App);
app.config.globalProperties.$const = Object.freeze(constants);
app.use(store);
app.mount("#app");
Run Code Online (Sandbox Code Playgroud)
成分
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
name: "Header", …
Run Code Online (Sandbox Code Playgroud)