我有以下package.json的npm模块
{
"name": "my-app",
"version": "0.0.0",
"scripts": {
"prepublish": "bower install",
"build": "gulp"
},
"dependencies": {
"express": "~4.0.0",
"body-parser": "~1.0.1"
},
"devDependencies": {
"gulp": "~3.6.0",
"bower": "~1.3.2"
}
}
Run Code Online (Sandbox Code Playgroud)
当我部署我的应用程序到生产,我不想安装devDependecies所以,我跑npm install --production.但在这种情况下prepublish脚本被调用,但它不需要,因为我在生产中使用CDN链接.
如何后才打电话后脚本npm install,但不是之后npm install --production?
我需要创建链式承诺:
var deferred = $q.defer();
$timeout(function() {
deferred.reject({result: 'errror'});
}, 3000);
deferred.promise.then(angular.noop, function errorHandler(result) {
//some actions
return result;
}).then(function successCallback(result) {
console.log('what do I do here?');
return result;
}, function errorCallback(result) {
$scope.result= result;
return result;
});
Run Code Online (Sandbox Code Playgroud)
如果我将errorCallback放入第一个then,则第二个then将被解析,并且将调用其successCallback.但如果我删除,errorHandler那么第二个承诺将被拒绝.
根据Angular JS文档,传播拒绝的唯一方法是返回$q.reject();并且看起来并不明显,特别是因为$q即使不需要也必须注入服务;
它也可以通过抛出异常来完成errorHandler,但它将异常跟踪写入控制台,这并不好.
还有另一种选择以明确的方式做到这一点吗?那是什么原因?为什么这样做?在这种情况下,当前的行为可能有用吗?
I am looking for a way to create deferred object which will be resolved outside the current scope. I like deferred objects and as I see Promise.defer() in Chrome 38 returns the deferred object.
但最新的Firefox 34 Promise.defer在Safari 8.0中也未定义.
所以我Promise.defer现在无法到处使用.未来地位怎么样?它会在其他浏览器中实现还是会被弃用?
我正在尝试使用Allure-framework为我的Selenium WebDriver测试生成报告.我使用了Allure版本1.3.9的JUnitframework和allure-maven-plugin.我运行测试,mvn test然后使用生成报告mvn site.我在target/site/allure-maven-plugin/目录中看到生成的报告.当我用Firefox 打开index.html页面时,它可以正常工作.然而,当在Chrome或Safari中做同样的事情时,我什么也看不见.
怎么了?我错过了什么吗?我的pom.xml档案就在这里.
我有一个字符串数组,想要立即删除其中的一些.但它不起作用
var list = ['a', 'b', 'c', 'd']
_.remove(list, 'b');
console.log(list); // 'b' still there
Run Code Online (Sandbox Code Playgroud)
我想这是因为_.remove函数接受字符串作为第二个参数,并认为这是属性名称.在这种情况下如何让lodash进行相等检查?
当我使用angular.js中的ng-repeat添加标签时,它们显示没有间距.这是一个演示它的Plunker.
但是如果我手动添加标签,只是复制了html,那么它们会显示空格.
有没有办法在标签之间添加空格而不需要额外的样式,就像纯引导一样?
我有一些仅限IPv6的主机.我可以通过curl成功执行curl请求
$ curl -I my.ip.v6.only.host
HTTP/1.1 200 OK
Run Code Online (Sandbox Code Playgroud)
但是当我试图从java获取它时我有一个错误:
HttpGet httpget = new HttpGet("http://my.ip.v6.only.host");
CloseableHttpResponse response = httpclient.execute(httpget);
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {}->http://my.ip.v6.only.host: No route to host
Mar 17, 2015 7:42:23 PM org.apache.http.impl.execchain.RetryExec execute
INFO: Retrying request to {}->http://my.ip.v6.only.host
java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at …Run Code Online (Sandbox Code Playgroud) 我有一个构建的图表d3,它出现了转换,我需要在所有转换结束时测试图表.我jasmine用于单元测试.怎么做?我找到方法d3.timer.flush(),但它只跳过第一帧,但我想跳过所有动画并立即查看最终结果并对其进行一些断言.
我正在用 Typescript 构建一个类系统。有一个主要的抽象类Component,它有一个静态方法create()。将调用此方法来构建特定实例
abstract class Component {
static build() {
// some additional logic here, for example, cache to reuse instances
return new this();
}
}
class Button extends Component { }
class Input extends Component {}
Button.build(); // returns Button instance
Input.build(); // returns Input instance
Run Code Online (Sandbox Code Playgroud)
这种方法在 Javascript 中运行良好,但是 Typescript 在 行报告错误new this(),说“无法创建抽象类的实例”。
我如何解释打字稿该方法将在派生实例上调用,而不是直接在主抽象类上调用?也许还有其他方法可以实现我需要的 API?
我的团队正在维护多个包,我们正在尝试tsconfig.json为所有这些包创建一个共享的通用配置。它包含我们关于编译目标、JSX、输出目录和包含文件的首选项,例如:
{
"compilerOptions": {
"module": "esnext",
"target": "es5",
"lib": ["es5", "dom"],
"jsx": "react",
"outDir": "build/dist"
},
"include": ["./src/**/*.ts", "./src/**/*.tsx"]
}
Run Code Online (Sandbox Code Playgroud)
我们将此文件发布为共享的 npm 模块,my-build-config然后extends在每个项目中使用:
{
"extends": "./node_modules/my-build-config/tsconfig.json"
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是共享配置中的所有路径都相对于文件位置。例如,它会尝试包含不是来自当前项目的“.ts”文件,而是包含在 .ts 文件中my-build-config。例如,./src/index.ts它会查找./node_modules/my-build-config/src/index.ts.
有没有办法共享文件位置,这样它们就不会在 10 多个包中重复?也许类似于 Jest 对rootDir财产所做的事情。
javascript ×5
angularjs ×2
java ×2
promise ×2
typescript ×2
allure ×1
animation ×1
css ×1
d3.js ×1
es6-promise ×1
httpclient ×1
ipv6 ×1
jasmine ×1
lodash ×1
maven ×1
node-modules ×1
node.js ×1
npm ×1
oop ×1
osx-yosemite ×1
report ×1
timer ×1
tsconfig ×1
unit-testing ×1
webdriver ×1