【问题标题】:Migrating Sencha Cmd created packages to npm将 Sencha Cmd 创建的包迁移到 npm
【发布时间】:2020-06-17 10:28:35
【问题描述】:

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

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

有人经历过这样的迁移过程吗?

【问题讨论】:

    标签: npm extjs sencha-cmd extjs7


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我实际上在这方面取得了相当大的进展......我已经将我的应用程序更改为开放工具,但我仍然依赖 Sencha Cmd 在本地构建我的包,其中存储它在来自 npm 的 Sencha Cmd 的全局安装中......在 Windows 上,它位于 AppData\Roaming\npm\node_modules\@sencha\cmd\repo\pkgs 中。正因为如此,在我的应用程序中,它在拉取包时仍然会查看这个 repo。但是,sencha app refresh --packages 中有一个错误,我让 Sencha Support 为它创建了一张票。我要做的是删除包目录,然后运行 ​​npm start 重新下载丢失的包。
    • 但是,是的,最终,我想我会将我的包发布到 Azure Packages 之类的地方,我将使用它来下载包,这应该让我不必使用 Sencha Cmd对于任何事情,真的。我知道它仍然在构建过程中使用,但我不会直接使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多