我们的团队大部分都是由java开发人员组成的,因此整个构建/部署/依赖关系管理系统都是在maven之上构建的.我们使用CI,因此每个构建过程都运行单元测试(w.karma和phantomJS用于前端,jasmine-node用于后端).我已设法为此目的配置一个业力专家插件.
这并没有解决在build上从package.json下载node.js依赖项的问题.我需要在现有环境中部署我的node.js/express应用程序,所以完美的场景将是:
npm install (即从节点包注册表下载依赖项)我试图为maven找到一个nodejs包,但老实说 - 作为一个node.js开发人员,我对选择正确的工具感到不自信,因为我无法区分糟糕的maven插件一个体面的.
也许使用shell插件并npm install从终端调用是一个更好的选择?
你怎么看?
这将工作: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.
使用getUserMediaChrome 预览视频元素中的摄像头输入在Chrome中效果很好,但是当我在Cordova容器中运行相同的代码时,视频显示就会中断。有什么想法会导致这种情况吗?
(()=>{
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) 使用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)



angularjs ×2
javascript ×2
android ×1
chromium ×1
cordova ×1
html ×1
jasmine ×1
java ×1
karma-runner ×1
maven ×1
node.js ×1
npm ×1
unit-testing ×1
url-routing ×1