Extjs 将多个独立的通用应用程序合并到一个主应用程序
我们的应用程序应该有一个主应用程序,由多个模块组成,这些模块有自己的git存储库 目标是使用主应用程序,并将模块转换为只应在主应用程序中引用或调用的包。就像C#中的DLL或Angular中的组件一样 现在,我浏览了sencha文档,看到的只是将模块整合到一个目录/工作区中。我们不想这样做,因为模块有自己的repo,“主应用程序”也有自己的存储库Extjs 将多个独立的通用应用程序合并到一个主应用程序,extjs,sencha-cmd,Extjs,Sencha Cmd,我们的应用程序应该有一个主应用程序,由多个模块组成,这些模块有自己的git存储库 目标是使用主应用程序,并将模块转换为只应在主应用程序中引用或调用的包。就像C#中的DLL或Angular中的组件一样 现在,我浏览了sencha文档,看到的只是将模块整合到一个目录/工作区中。我们不想这样做,因为模块有自己的repo,“主应用程序”也有自己的存储库 请推荐最佳路径。我想最简单的方法是通过将其添加为workspace.json为每个回购协议中的包定义工作区: { "frameworks&
请推荐最佳路径。我想最简单的方法是通过将其添加为workspace.json为每个回购协议中的包定义工作区:
{
"frameworks": {
"ext": "ext"
},
"build": {
"dir": "${workspace.dir}/build"
},
"packages": {
"dir": "${workspace.dir}/packages/local,${workspace.dir}/packages",
"extract": "${workspace.dir}/packages/remote"
}
}
现在您需要在/ext下链接(建议使用symlink)或复制框架
假设您具有以下结构
/root/workspace.json
/root/ext
/root/packages/local/yourModule
现在您可以转到/root/packages/local/yourModule
打电话
这将生成包和js文件
您将在下面找到js文件
/root/packages/local/yourModule/build/yourModule.js
/root/packages/local/yourModule/build/yourModule-debug.js
这些文件现在可以从主应用程序按需加载
根据您的需要,您可以通过添加
skip.sass=1
skip.examples=1
skip.slice=1
skip.pkg =1
在您的package.json中-或对于内部的旧版sencha cmd包
/root/packages/local/yourModule/.sencha/sencha.cfg
另一种方法是使用另一个构建工具 您需要在内部执行以下操作: /root/packages/local/yourModule/src
- (将文件按正确顺序排列)
- 海螺
- 删除空白*
- 丑陋的*
我用grunt成功地试用了它。也许软件包就是你想要的:嗨@MerlinFejzuli,这就是我现在正在研究的。据我所知,cmd包只有在您有sencha工作区的情况下才能工作,在那里您可以共享代码。在我的例子中,我只想简单地像“包”一样添加模块,而不在主应用程序上添加项目本身。同样,主应用程序将有自己的存储库。更可能的是,我想保持它的松散耦合。你可以托管你创建的包。然后,您可以在应用程序中要求它们。这当然会将它们下载到packages文件夹中,但是你可以忽略这一点(如果你使用的是git,仍然有一些svn用户会不寒而栗),因为你的存储库中没有它。我认为不需要工作区。这是我现在正在尝试的工作区,但我不断得到失败的构建,因为
错误:Sass编译遇到2个错误。你已经遇到这个问题了吗?没有,你使用哪个构建链?Sencha cmd还是基于节点的(更新的)解决方案?如果使用Sencha cmd,请尝试在./Sencha/Sencha.cfg文件中设置skip.sass=1。(顺便说一句,我使用的是Sencha Cmd 6.x)我使用的是Sencha Cmd,当我在package.json的properties属性中添加skip.sass=1时,它就起作用了。我认为在.sencha文件夹中没有看到任何sencha.cfg文件,因为我使用的是7.3。我计划稍后使用基于节点的解决方案。很高兴听到它在工作。较新的软件包不再使用sencha.cfg。我还没有升级我的。仅供参考,基于节点的构建链仍在幕后使用Sencha cmd。这就是为什么我转向另一种构建工具(如答案中所述),我不喜欢节点解决方案包装sencha cmd,sencha cmd基本上是围绕ant的包装器。为了生成一个js人工制品,它涉及了太多的java,不符合我个人的口味-sencha没有正确地使用节点生态系统。现在,这就可以了。我接受你的回答。我从你那里学到了很多。对我来说,这不是什么大问题,因为使用新的sencha开放工具,您只需要添加npx指令,然后添加sencha cmd命令。谢谢
/root/packages/local/yourModule/.sencha/sencha.cfg