小编Raf*_*zak的帖子

如何使用maven部署node.js应用程序?

我们的团队大部分都是由java开发人员组成的,因此整个构建/部署/依赖关系管理系统都是在maven之上构建的.我们使用CI,因此每个构建过程都运行单元测试(w.karma和phantomJS用于前端,jasmine-node用于后端).我已设法为此目的配置一个业力专家插件.

这并没有解决在build上从package.json下载node.js依赖项的问题.我需要在现有环境中部署我的node.js/express应用程序,所以完美的场景将是:

  1. 从回购中拉出(使用maven build自动完成)
  2. npm install (即从节点包注册表下载依赖项)
  3. 运行测试

我试图为maven找到一个nodejs包,但老实说 - 作为一个node.js开发人员,我对选择正确的工具感到不自信,因为我无法区分糟糕的maven插件一个体面的.

也许使用shell插件并npm install从终端调用是一个更好的选择?

你怎么看?

java continuous-integration maven node.js npm

45
推荐指数
4
解决办法
5万
查看次数

将URL传递给AngularJS app中的$ routeParam

如何将实际URL(带斜杠,逗号等)作为$ routeParam传递给AngularJS App?

这将工作:http: //paprikka.github.io/le-bat/#/preview/asdadasda

这不会:http://paprikka.github.io/le-bat/#/preview/http : //page.com

这也不会:http: //paprikka.github.io/le-bat/#/preview/http%3A%2F%2Fpage.com

或者:http: //paprikka.github.io/le-bat/#/preview/?url = http%3A%2F%2Fpage.com

细节

AngularJS路由机制的设计不允许使用斜杠作为查询参数传递字符串.我能理解这个决定背后的原因 - 我们不想在这里创建一个无状态服务器.

但是,仍然存在在路径中使用不同分隔符或正则表达式的情况.

我想创建一个应用程序,它接受一个url哈希字符串参数并将其内容加载到iframe(此处链接).路由以非常标准的方式设置(我使用的是Coffeescript,但这个片段与纯js没有区别):

$routeProvider
  .when('/preview/:src', {templateUrl: 'partials/preview.html',
  controller: 'PreviewCtrl'})
  .when('/preview', {templateUrl: 'partials/preview.html',
  controller: 'PreviewCtrl'})
Run Code Online (Sandbox Code Playgroud)

当然,我可以在AngularJS被引导之前从哈希加载url,然后将它传递给库,但如果我还可以在更改范围内的数据时更新当前路由参数,这将是很好的 - 这就是为什么我认为最好不要避免AngularJS API.

javascript url-routing angularjs

16
推荐指数
2
解决办法
3万
查看次数

如何在Android的Cordova上使用getUserMedia?

使用getUserMediaChrome 预览视频元素中的摄像头输入在Chrome中效果很好,但是当我在Cordova容器中运行相同的代码时,视频显示就会中断。有什么想法会导致这种情况吗?

示例代码。

添加了使用Mozilla gUM polyfill的示例:

(()=>{
  var promisifiedOldGUM = function(constraints) {

    var getUserMedia = (
        navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia
    );

    if(!getUserMedia) {
      return Promise.reject(new Error('getUserMedia is not implemented in this browser'));
    }

    return new Promise(function(resolve, reject) {
      getUserMedia.call(navigator, constraints, resolve, reject);
    });

  }

  if(navigator.mediaDevices === undefined) {
    navigator.mediaDevices = {};
  }

  if(navigator.mediaDevices.getUserMedia === undefined) {
    navigator.mediaDevices.getUserMedia = promisifiedOldGUM;
  }





  function initCamera() {
      const constraints = { audio: false, video: { width: 1280, height: 720 } }; …
Run Code Online (Sandbox Code Playgroud)

html javascript android chromium cordova

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

使用Karma w的Angular.js代码覆盖率.CoffeeScript的

使用Angular.js + Jasmine运行Istanbul代码覆盖工具时遇到了一些困难.我在Coffeescript中编码,但由于Instanbul还不支持它,所以在每次保存时都会将源转换为JS.

基本上,我没有在这里看到测试和测试代码之间的关系,因为没有单元测试的文件仍然可以获得66%的覆盖率,而且......根本没有意义.

正如我在标题中提到的,我使用Karma作为测试运行器,但命令行产生相同的结果.

示例Angular.js控制器(已编译.coffee):

'use strict';
angular.module('app.controllers').controller('HelpIndexCtrl', [
  '$scope', function($scope) {
    return $scope.foo = 'bar';
  }
]);
Run Code Online (Sandbox Code Playgroud)

和单元测试:

'use strict'
describe "controllers", ->
  beforeEach angular.mock.module "app.controllers"
  scope = rootScope = {}
  describe "HelpIndexCtrl", -> inject ($controller)->
    ctrl = $controller 'HelpIndexCtrl', $scope:scope
    it 'should have working scope', ->
      expect(scope.foo).toBe 'bar'
Run Code Online (Sandbox Code Playgroud)

一般覆盖结果

示例控制器

示例控制器

unit-testing code-coverage jasmine angularjs karma-runner

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