1

我正在尝试将我的应用程序从使用 Sencha Cmd 迁移到创建 Ext JS 应用程序的较新的 Node/npm 方式,并且我使用本指南作为参考。

我感到困惑的是如何处理自定义包。我目前有大量使用 Sencha Cmd 构建的“远程”包(它们最初是使用本指南生成的)。我将 remote 放在引号中,因为它们是在我的机器上构建的,放在 bin/Sencha/Cmd/repo 目录中,然后当我将它们放在应用程序的 requires 属性中时,Sencha Cmd 知道在我的本地机器上查找它们。 json。现在一切都托管在 npm 上,似乎这种连接可能会丢失,除非我不理解关于 npm 的某些内容。需要明确的是,我们不想在任何 npm 服务器上托管我们的包......如果有的话,我们会自己托管它。

有没有人有过这样的迁移过程的经验?

4

1 回答 1

2

这个问题的症结与 Sencha Cmd 的两个独立安装有关。使用 OpenTooling,Sencha Cmd 二进制文件被打包到一个节点模块中,驻留在node_modules/@sencha/cmd. 当使用 npm 构建脚本,或者在 Sencha Cmd 构建命令前加上,将使用npx里面的 Sencha Cmd 安装。node_modules

在迁移之前,您的 Sencha Cmd 安装可能在您的用户主 bin 目录(默认位置)中。快速浏览此安装目录应该会显示sencha.cfg or .sencha包含有关原始 Sencha Cmd 安装信息的配置 - 这里特别有用的是有关此安装 repo 设置的信息。如果您这样做,sencha repo list您可能会看到 Sencha Cmd 远程 repo(Sencha 的 CDN),在您的情况下,您会看到本地 repo 以及catalog.json关于 repo 和它包含的包的其他元数据。如果您要sencha repo list针对 OpenTooling 安装的 Sencha Cmd 运行该命令,您将不会看到相同的信息。

这两个安装以及它们包含的存储库(和包)是不同的,需要进行协调。不幸的是,这不是迁移工具的一部分——但我相信它可以/应该是。

要在 Sencha Cmd 的 OpenTooling 安装中设置存储库,请使用sencha repo sync. 如果它们不自动存在,这应该会自动添加一个.sencha配置目录和一个目录。repo在此安装的存储库中,您现有的 Sencha Cmd 包将需要发布/部署/安装/等,使用与npx设置原始存储库相同的命令(但带有前置)。一旦包存在于node_modulesCmd 的安装中,标准构建过程npm start应该能够找到您的包。

于 2020-06-23T17:13:15.147 回答