将Sencha Cmd创建的包迁移到npm

将Sencha Cmd创建的包迁移到npm,npm,extjs,sencha-cmd,extjs7,Npm,Extjs,Sencha Cmd,Extjs7,我正在尝试将我的应用程序从使用Sencha Cmd迁移到创建Ext-JS应用程序的较新Node/npm方式,并将其用作我的参考 让我困惑的是如何处理定制包。目前,我有大量使用Sencha Cmd构建的“远程”软件包(它们最初是使用Sencha Cmd生成的)。我把remote放在引号中,因为它们是在我的机器上构建的,放在bin/Sencha/Cmd/repo dir中,然后当我把它们放在app.json的requires属性中时,Sencha Cmd知道在我的本地机器上查找它们。现在,所有的东西

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

让我困惑的是如何处理定制包。目前,我有大量使用Sencha Cmd构建的“远程”软件包(它们最初是使用Sencha Cmd生成的)。我把remote放在引号中,因为它们是在我的机器上构建的,放在bin/Sencha/Cmd/repo dir中,然后当我把它们放在app.json的requires属性中时,Sencha Cmd知道在我的本地机器上查找它们。现在,所有的东西都托管在npm上,似乎这个连接有点丢失了,除非npm有什么我不理解的地方。要明确的是,我们不想在任何npm服务器上托管我们的包。。。如果有的话,我们会自己主持


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

这个问题的关键在于Sencha Cmd的两个独立安装。使用OpenTooling,Sencha Cmd二进制文件被打包到一个节点模块中,驻留在
node\u modules/@Sencha/Cmd
中。当使用npm构建脚本时,或在Sencha Cmd build命令前面加上
npx
时,将使用
node_模块中的Sencha Cmd安装

在迁移之前,您的Sencha Cmd安装可能位于用户主bin目录(默认位置)中。快速阅读此安装目录将显示
sencha.cfg或.sencha
配置,其中包含有关原始sencha Cmd安装的信息-此处特别有用的是有关此安装repo设置的信息。如果你做了一个sencha repo列表,你可能会看到sencha Cmd remote repo(sencha的CDN),在你的例子中,你会看到你的本地repo以及
catalog.json
和其他关于repo及其包含的包的元数据。如果要针对OpenTooling安装的sencha Cmd运行
sencha repo list
命令,则不会看到相同的信息

这两个安装及其包含的回购协议(和包)是不同的,需要协调。不幸的是,这不是迁移工具的一部分,但我相信它可以/应该是


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

我在这方面已经取得了相当大的进展。。。我已经将我的应用程序更改为开放式工具,但我仍然依赖Sencha Cmd在本地构建我的包,它将存储在npm的Sencha Cmd的全局安装中。。。在Windows上,这位于
AppData\Roaming\npm\node\u modules\@sencha\cmd\repo\pkgs
中。正因为如此,在我的应用程序中,它在拉包时仍会查看此回购协议。然而,
sencha应用程序刷新--packages
中有一个bug,我让sencha支持为它创建一个票证。我要做的是删除包目录,然后运行
npm start
,重新下载丢失的包。但是,是的,最终,我想我会将我的包发布到Azure包之类的东西上,我会用它来下载包,这应该可以让我不用再使用Sencha Cmd来做任何事情,真的。我知道它在构建过程中仍然被隐藏使用,但我不会直接使用它。