我正在开发两个Java项目:Gradle项目和一个与Gradle项目具有快照依赖性的Maven项目.
当我更改gradle项目时,我需要将它安装到m2并刷新IntelliJ中的依赖项.
有没有办法让gradle项目源始终与maven项目保持同步,而无需将其安装到m2?
是否有一种方法go
可以迭代特定月份并从中获取所有time.Date
对象?
比如迭代比4月份将导致04012016
直到04312016
:
for _, dayInMonth := range date.April {
// do stuff with dates returned
}
Run Code Online (Sandbox Code Playgroud)
(目前上面的代码显然不起作用).
或者,如果不是标准库的一部分,那么第三方库是否相当于moment.js?
我正在尝试在我的节点项目中使用Typescript,但是遇到了一些问题.
这是我的index.ts文件:
import express from 'express';
const app = express();
Run Code Online (Sandbox Code Playgroud)
我在跑:
tsc --module commonsjs -d index.ts
Run Code Online (Sandbox Code Playgroud)
我的输出是index.js:
var express_1 = require('express');
var app = express_1["default"]();
Run Code Online (Sandbox Code Playgroud)
这["default"]
是从哪里来的?它使我的代码无法正常运行:
var app = express_1["default"]();
^
TypeError: express_1.default is not a function
Run Code Online (Sandbox Code Playgroud)
据我所知,我应该得到没有"默认"括号的代码,它会工作正常 - 我尝试删除括号,它的工作原理.
我在这里错过了什么?
我正在使用angularjs和ui-router构建一个简单的博客应用程序,我想监听每个状态更改并检查用户是否已登录.如果他不是,我想将他重定向到登录页面.
这个场景非常简单,我试图在没有运气的情况下实现这个解决方案.
这是相关代码:
app.config(function($stateProvider, $urlRouterProvider){
$stateProvider.state('app', {
url: '',
abstract: true
});
$urlRouterProvider.otherwise('blogs');
});
app.run(function($rootScope, $state, $location, UserService){
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
console.log("state change: from state: " + fromState.name + " to state: " + toState.name);
let loggedIn = UserService.isLoggedIn();
if (toState.name !== 'app.login' && !loggedIn){
event.preventDefault();
$state.go('app.login');
});
});
Run Code Online (Sandbox Code Playgroud)
其中'app.login'被定义为登录状态,'blogs'是我的主要供稿的网址,我希望该应用程序将在启动时进入.
在查看chrome控制台时,当没有用户登录时,我看到:
[HMR] Waiting for update signal from WDS...
state change: from state: to state: app.blogs
state change: from state: to state: app.login
state change: from …
Run Code Online (Sandbox Code Playgroud) 我在我的项目和Travis-CI中使用Go lang来构建它.
我想在每个操作系统(OSX,Linux,Windows)上构建它,所以我想使用GIMME_OS
和GIMME_ARCH
环境变量(来自GIMME项目),但问题是Darwin不足以支持我的项目所以我必须在mac上本地构建我的项目.
我的方法是将OSX操作系统构建为VM(travis直接从.travis.yml文件支持),并使用交叉编译(GIMME)linux64,linux386和windows构建Linux.
现在,每次我定义一个环境变量时,它都会为我的构建矩阵创建一个新列.我想要的环境变量只能在linux构建部分中使用.
现在我的.travis.yml看起来像这样:
language: go
go:
- 1.4.2
os:
- osx
- linux
env:
- GIMME_OS=windows GIMME_ARCH=amd64
- GIMME_OS=linux GIMME_ARCH=amd64
- GIMME_OS=linux GIMME_ARCH=386
- GIMME_OS=darwin GIMME_ARCH=386
matrix:
exclude:
os: osx
env: GIMME_OS=darwin GIMME_ARCH=386
before_script:
- go get -d -v ./...
script:
- go build -v ./...
- go test -v ./...
Run Code Online (Sandbox Code Playgroud)
这确实创建了8个构建(每个OS的每个环境变量行)是否有一种方法可以定义仅与.travis.yml文件中的某些部分相关的环境变量(特别是OS部分)
我熟悉_.without
功能
这将从数组中删除特定值:
_.without([1, 2, 1, 3], 1, 2);
// ? [3]
Run Code Online (Sandbox Code Playgroud)
是否有内置/ lodash函数(或 - 我如何实现一个有效的函数),删除不是特定的值,而是具有指定字段值的var /
_.without([ { number: 1}, {number: 2} ], 1)
// -> [ {number: 2} ]
Run Code Online (Sandbox Code Playgroud) 在Typescript中,这些作业之间的区别是什么:
var Object[];
var Array<Object>
Run Code Online (Sandbox Code Playgroud)
类型脚本中的泛型是否具有与Java等语言相同的语义含义,还是简单的语法糖?
当使用ES6与反应0.14时,有没有办法避免样板?
到现在为止,我不必担心我的函数被绑定到Component
我创建但是不再(为什么?!?)的情况和组件只限于Component
超类(如果我正确理解错误) .
因此,每次创建新类时我真正需要做的是将此代码添加到构造函数中:
class CustomComp extends React.Component {
constructor() {
super();
this.newFunction = this.newFunction.bind(this);
}
newFunction(){
console.log('This is user defined function');
}
render() {
return <button onClick={this.newFunction}>Click</button>
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我不绑定newFunction
它将失败(没有道具,状态或任何东西).
有办法解决这个问题吗?
我正在将我的AngularJs项目从ES6"迁移"到TypeScript,而我正在使用webpack ts-loader
.
问题是编译的文件和源映射是在我的文件夹中写的,而不是像使用时从内存中提供的bundle.js文件webpack-dev-server
.
而不是index.ts
在我的目录中我最终得到:
.
??? index.js
??? index.js.map
??? index.ts
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
我的tsconfig.json是:
{
"compilerOptions": {
"target": "es6",
"sourceMap": true,
"module": "commonjs"
},
"exclude": [
"node_modules",
"src/dist"
],
"version": "1.6.2"
}
Run Code Online (Sandbox Code Playgroud)
和webpack.config.js是:
module.exports = {
context: PATHS.app,
entry: {
app: ['./index.ts']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
// add resolve clause:root
module: {
loaders: [
{ test: /\.ts$/, exclude: /node_modeuls/, loader: 'babel-loader!ts-loader' },
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
{ …
Run Code Online (Sandbox Code Playgroud) 我正在使用Travis-CI
构建我的Go
项目,到目前为止,我使用gimme
travis go环境的组合脚本来交叉编译项目.
我切换到支持GOOS
和GOARCH
环境变量的Go 1.5 交叉编译器,而不需要其他编译器或脚本.
我的问题是我正在使用Bintray部署,我的环境变量在部署阶段没有公开.
language: go
go:
- 1.5
env:
matrix:
- GOOS=windows GOARCH=amd64
- GOOS=linux GOARCH=amd64
- GOOS=linux GOARCH=386
- GOOS=darwin GOARCH=amd64
before_script:
- go get -d -v ./...
script:
- go build -v ./...
before_deploy:
- chmod +x ./prepare_bintray_deployment.sh
- "./prepare_bintray_deployment.sh"
deploy:
file: bintray_descriptors/${GOOS}_${GOARCH}.json
provider: bintray
Run Code Online (Sandbox Code Playgroud)
需要注意的是这种变化之前,我用的是GIMME_OS
和GIMME_ARCH
环境变量和它工作得很好,这让我相信,特拉维斯不支持这一点.
可能是什么问题呢?