小编aor*_*vre的帖子

Ionic/bower/cordova - 忽略构建文件

我的项目结构如下:

MyApp
  - hooks
  - platforms
     - android
     - ios
  - www
    - js / css / templates..
    - lib (including all bower components)
Run Code Online (Sandbox Code Playgroud)

目前,该www/lib目录占用了21,8 Mb.(我的项目中添加了大量的凉亭组件.)

构建每个项目时,整个www文件夹都会复制到platform/android(例如)构建文件夹中,当然也包括www/lib.

这导致了非常大的构建,因为包含在凉亭组件中的大量文件对于生产来说是无用的.

手动管理所有的bower依赖关系显然不是一种选择.那么你们如何设法清理项目平台目录以进行构建?

我正在考虑为此创建一个钩子,但在用我不认识的语言(nodeJS)编写代码行之前,我希望你的回归和建议.

node.js cordova bower ionic-framework

14
推荐指数
2
解决办法
4037
查看次数

量角器 - 在做下一步之前等待异步承诺

首先,我已经检查了关于这一点的各种帖子和博客,我仍然无法弄清楚如何正确地做到这一点.

我尝试了许多不同的组合:

  • 浏览器等待
  • protractor.controlFlow().执行
  • protractor.controlFlow().等待(

...仍然没有成功..

我的问题

在我的beforeEach函数中,我想调用一个量角器承诺并在执行其余代码之前等待它解决.

我的守则

我已经为愿意帮助我的人准备了这个简单的测试

describe('testAsync', function() {

  beforeEach(function() {
    console.log('beforeEach - step 1 ')

    browser.get("https://angularjs.org/");
    console.log('beforeEach - step 2 ')
    testFunc()
    console.log('beforeEach - after testFunc - step 3')

  });

  var testFunc = function(){

    console.log("testFunc - step 1")

    browser.wait(function() {
      var deferred = protractor.promise.defer();
      element(by.id('twitter-widget-1')).isPresent()
        .then(function (isPresent) {
          console.log("testFunc - step 2")
          deferred.fulfill(isPresent);
      });
      return deferred.promise;
    });

    console.log("testFunc - step 3")

  }

  it('test after BeforeEach', function() {
    console.log("Last trace")
  });

});
Run Code Online (Sandbox Code Playgroud)

电流输出

[launcher] Running 1 …
Run Code Online (Sandbox Code Playgroud)

webdriver promise selenium-webdriver angularjs-e2e protractor

11
推荐指数
1
解决办法
1万
查看次数

Angular 7 - 服务工作者PWA + SSR无法在服务器上运行

我正努力让我的服务器端渲染和服务工作者在服务器端合作.

有关localhost的信息 - >工作

这是按预期工作的.服务工作人员在每次更新时都会工作并更新我的应用.此外; 一个curl localhost:8082送我回我的信息.

我用以下命令启动我的应用程序: npm run ssr

 "ssr": "npm run build:ssr && npm run serve:ssr",
 "build:ssr": "npm run build:client-and-server-bundles",
 "serve:ssr": "node dist/server.js",
 "build:client-and-server-bundles": "ng build --prod && npm run webpack:server",
 "webpack:server": "webpack --config webpack.server.config.js --progress --colors"
Run Code Online (Sandbox Code Playgroud)

有关生产的信息: - >不工作

网站是通过HTTPS:https: //airdropers.io网站进程在关闭端口上运行,并且HAPROXY将流量从443重定向到网络服务器的端口

Webserver日志上显示问题:无法订阅通知错误:此浏览器禁用或不支持服务工作者

额外信息:

localhost和production上的节点js是相同的:v9.0.0我使用以下过程构建生产:

  1. git pull
  2. npm run build:ssr
  3. pm2 start dist/server.js

更新23/02/2019

我现在有了更深刻的理解.我的问题是我使用节点命令启动我的SSR/PWA服务器,例如"node dist/server.js".

从我的理解"node dist/server.js"不适用于服务工作者(PWA)我引用(https://angular.io/guide/service-worker-getting-started)

由于ng服务不适用于服务工作者,因此必须使用单独的HTTP服务器在本地测试项目.您可以使用任何HTTP服务器.以下示例使用来自npm的http-server软件包.要减少冲突的可能性并避免提供过时的内容,请在专用端口上进行测试并禁用缓存.

我无法启动是http-server dist/browser因为我将失去SSR能力.

如何启动PWA/SSR服务器?我应该使用什么命令?
我应该做什么?

更新24/02/2019

正如@GökhanKurt提到的那样,服务工作者无法正常使用我的SSR服务器.我需要SSR用于搜索引擎优化,我需要一个服务工作者来进行浏览器推送通知.我有什么解决方案来处理浏览器用户推送通知?One Signals等第三方lib?


我们欢迎任何想法建议,以帮助我完成这项工作.感谢您的支持,Alex

progressive-web-apps ssr angular angular-service-worker

9
推荐指数
1
解决办法
2358
查看次数

应用程序初始化 - 空闲时间巨大

我面临一些性能问题.事实上,应用程序本身在加载时反应很好,但我的问题更像是当我执行F5(并且再次重新加载应用程序)时,我看到一些奇怪的空闲时间正在扼杀我的应用程序加载时间.

启动我的应用时:

  • 我对我的网络服务器进行了一些查询:大约需要500毫秒到700毫秒
  • 我提出了所要求的数据
  • 我对每个文本都有一些翻译(产生了很多观察者)
  • 我使用angular-translate.如果你有更好的国际化解决方案;)

当应用程序启动时,我有1200个观察者.我已经尝试删除所有翻译,并有大约700名观察者,但没有看到任何行为上的差异.

  • 我加载了大约25个模块,18个是应用程序运行的必需项

好吧,让我们深入研究这个问题,这是一个代表我的问题的chrome时间轴.我提出了两个不同的. IDLE Long_1  -  Chrome时间轴 IDLE Long_2  -  Chrome时间轴

知道为什么我有那些空闲时光吗?

关于如何更深入地调查该问题的根本原因的任何想法?

编辑:信息09/06/2015

  • 所有我的JS代码都在appcache中,因此,我的所有代码都在应用程序的第一个init加载,然后加载到缓存中.我已经添加到appcache所有供应商/ lib/js/fonts/img等...

  • 在那段时间内,有5或6个请求主要进入第一个块.这是一个公司私人angularJS应用程序

  • 从这些请求中,我们授予用户权限并初始化应用程序
  • 我们试图从应用程序中删除所有HTML生成,并只保留JS以查看阻塞点是否为渲染,没有效果
  • 我们试图删除angular-translate,这会产生很多观察者的"随时随地"翻译,没有任何影响

感谢支持,

performance angularjs

7
推荐指数
1
解决办法
425
查看次数

Android Project to Cordova插件 - 找不到/创建了R.java

这实际上是我第一个使用大量设备特性的Cordova插件之一.

上下文

我的android项目由以下部分组成:

  • libs(供应商库,如libGoogleAnalyticsServices.jar或android-support-v4.jar)
  • res(anim/drawable/values/xml ...)
  • src(我的项目Java特定来源)

在android中,一旦项目被编译,就会创建一个特定的文件来处理我的所有项目定义和依赖项:com.myProject.R.java android项目引用了很多R.drawable(例如),因此需要导入com.myProject.R.java

我想将该Android项目用于Cordova插件.

因此,我为我的cordova插件创建了一个全新的目录: - 创建了我的节点界面 - 复制了我的Android Source - 更新了plugin.xml以引用mt文件/ intent ...

什么工作

随着创建的cordova插件,我将它添加到我现有的离子项目中.这个项目使用ANT进行构建,它已经有6个月了,还没有更新到gradle新的构建系统.

我手工复制了日食生成的R.java到ANT-BUILD com/myProject/R.java,我的项目工作正常.

这一步允许我们轻松地将完整的android项目导出到Cordova插件

什么行不通

Ionic已经更新了它的构建过程,现在正在使用Gradle.更新我的android平台后(用cordova平台rm android/cordova平台添加android)

我现在有很多以下错误(其他问题相同):

platforms\android\build\intermediates\res\debug\layout\main.xml:30: error: Error: No resource found that matches the given name (at 'text' with value '@string/vehicleDetailsDefaultTxt').
Run Code Online (Sandbox Code Playgroud)

此问题与以下事实有关:我com.myProject.R.java没有在gradle构建中创建/生成,并且找不到引用对象.

我试图手动将R.java文件放入:

  • 平台\ android\build\intermediates :(很多不同的目录) - 同样的问题
  • platforms\android\build\generated\source\r\_ debug:这是文件应该是IMO但在打包之前,gradle清理目录

我该如何参考R.java?或者我该如何自动编译R.java?或者更好的是,我如何制作一个Android项目(带有布局/资源...)一个Cordova项目,以便我像以前一样阻止任何手动步骤?

请随时向我询问有关该问题的其他信息.我会尽快回答

android gradle r.java-file cordova ionic

7
推荐指数
0
解决办法
941
查看次数

我可以添加基于Git分支的cordova插件吗?

我有一个带有MASTER分支的git存储库.我现在有一个新功能到同一个git项目的特定分支.

我想添加特定的分支cordova插件.

我知道添加了一个基于GIT和GIT TAGS的cordova项目,但我找不到与分支相关的任何内容.

我正在寻找类似的东西:

cordova plugin add https://mygitadresse/myproject#branch_name 
Run Code Online (Sandbox Code Playgroud)

感谢支持和建议;

git branch cordova ionic-framework

7
推荐指数
2
解决办法
4633
查看次数

LoopBack/Angular/Cordova在Android上超时

我们有一个Web应用程序,它使用Strongloop的LoopBack作为API和后端,以及前端的Angular,Cordova用于打包移动.来自Cordova的Web应用程序和iOS目标运行良好,但是当我们尝试为Android设备构建时,应用程序服务器无法从设备访问.更具体地说,在加载客户端应用程序并尝试登录后,设备向我的API发出POST但从未收到响应(据我所知,请求从未真正命中过服务器).

这是我到目前为止所尝试的:

  • 确保在config.xml中access设置为origin="*"
  • 确保Content-Security-Policy在我的(单页)应用程序的index.html中设置了元标记,允许远程网络
  • 确保INTERNET在Android Manifest中正确设置了权限
  • 确保可以从浏览器中的设备访问应用服务器
  • 确保生成的lb-services.jsAngular服务具有正确的API地址
  • 尝试生成一个Ionic Framework应用程序并将我的应用程序代码放入其中以防万一它生成我需要的东西

由于我能够在没有任何问题的情况下使用Cordova在iOS上运行我的应用程序,我认为我的Android配置必须有特定的东西.我确实遇到了一个单独的问题,即安装的插件与最新的Cordova不兼容,但删除该插件似乎已经解决了这个问题.为Android构建有什么不同可以防止这种情况发生?

编辑:

我已经转而使用Phonegap Build,希望这将是一个更简单的工作流程,但我仍然看到相同的问题..这是我正在做的白名单/ CORS配置:

index.html中的元标记: <meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'self' 'unsafe-inline'; script-src * 'self' 'unsafe-inline' 'unsafe-eval'">

config.xml(Phonegap Build,可识别信息已删除):

<?xml version="1.0" encoding="UTF-8" ?> <widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="..." version="1.0.0"> <name ... /> <description ... /> <author ... /> <icon src="icon.png" /> <gap:splash src="splash.png" /> <preference name='phonegap-version' value='cli-5.1.1' /> <gap:plugin name="com.indigoway.cordova.whitelist.whitelistplugin" version="1.1.1" /> </widget>

javascript angularjs cordova phonegap-build strongloop

5
推荐指数
1
解决办法
255
查看次数

将Angular2应用程序部署到Tomcat8-路由似乎不起作用

尝试将Angular2应用程序部署到tomcat8时遇到一个奇怪的问题。

首先,上下文:-我使用Angular Cli来进行构建。-应用程序可以在服务器上本地完美运行:ng serve-ng build使我的dist / dir具有所有产品资源-我创建了一个gulp任务来创建WAR,以便将应用程序正确部署到Tomcat。-将战争部署到tomcat webapps directoy

我的应用URI是这样的:https:\ www.myexample.com \ myapp \

Home uri运作良好;当尝试使用Angular2路由时,问题开始了。例如https:\ www.myexample.com \ myapp \ myroute。

Tomcats认为这是一个新的Webapp目录,并且不进行任何转发https:\ www.myexample.com \ myapp \ index.html

到目前为止,我已经看过几篇有关这种行为的文章。我还没有看到任何解决方案。

有谁知道/如何解决这个问题以在Tomcat8上正确运行我的angular2应用程序?

谢谢支持。

tomcat8 angular-cli angular

5
推荐指数
1
解决办法
1097
查看次数

撤销“存储文件”权限

我的问题与Chrome浏览器有关。我正在使用?ordova和https://github.com/apache/cordova-plugin-file开发应用程序。

该插件要求在最终用户浏览器上使用永久性存储的权限,例如:

在此处输入图片说明

我很久以前单击“允许”,此弹出窗口不再显示。

现在,我想阻止我的用户弹出该窗口,因此,我需要在计算机中撤消该权限才能执行一些测试。

我尝试过各种测试来更改浏览器设置?但我没有成功撤消该许可。我说的不是位置/闪存或其他权限,而是特定的存储权限。

如果有人对如何撤销该线索有任何了解,我将很高兴对其进行测试并提供反馈。

permissions google-chrome file-storage cordova-plugin-file

5
推荐指数
1
解决办法
938
查看次数