robwierzbowski / grunt-build-control Goto Github PK
View Code? Open in Web Editor NEWVersion control your built code.
License: MIT License
Version control your built code.
License: MIT License
When using buildcontrol locally, everything works fine, all the files in my "dist" folder get commited and pushed to gihub.
However, when running the same command on Travis CI, some files get removed from from the folder, resulting in partially commited version.
I inspected the output, and locally I get create mode 100644 templates/66c3b9bc.combined.html
, while on Travis, for the same file, I get delete mode 100644 templates/66c3b9bc.combined.html
Same Gruntfile on both, same commands. Is there a setting I'm unaware of?
(also worth noting, that locally, the %sourceBranch% is correct, and on Travis, I get (unavailable)
)
Is it possible to pass commit message via command line, while using grunt build control? The option to specify the message
in the Gruntfile.js
file doesn't suit my requirements.
I would need something that can dynamically use the commit message passed at runtime to commit to the remote repository.
The call to git diff
at https://github.com/robwierzbowski/grunt-build-control/blob/master/tasks/build_control.js#L135 only checks whether the output from the command is non-empty before throwing the uncommitted changes error on the following line.
I've had a situation where a line endings were being adjusted by Git and the output of git diff
was:
warning: CRLF will be replaced by LF in dist/images/flag.svg.
The file will have its original line endings in your working directory.
Easy enough to fix, but hard to actually determine as buildcontrol doesn't log the result of the git diff
command; it only performs the "is empty" check and then assumes all non-empty results must be due to uncommitted changes.
My suggestion is to log the output from git diff
so users can easily identify and resolve their issue. Adjusting the error message thrown would also help in ensuring users aren't misled into looking for uncommitted changes.
Is it possible to add functionality to specify / set git tags?
So far that's the only functionality that I've been missing in this plugin. Otherwise great work!
Everything works as expected when branch: 'master'
but not branch: 'gh-pages'
I can't quite figure it out.
Code snippet below
buildcontrol: {
dist: {
options: {
remote: '[email protected]:ushahidi/pinghome.git',
branch: 'gh-pages',
commit: true,
push: true
}
}
},
Do you think we need to create the dir if it doesn't exist? The task should be run after a build process โ if there's no built code I think it's likely the user has mistyped the directory.
Maybe we could throw a helpful error about there being no code to version. Thoughts?
I'm making a really simple homepage for a friend, and I'm using the SFTP plugin for sublime text3. This requires a config file, sftp-config.json, to be present at the root of the directory you upload to the server. I setup using yeoman. When I put the sftp-config.json in my app directory, it isn't copied over to the /dist directory, which is what should be uploaded to production. I think it would be good to copy over remaining files in /app to /dist for purposes like these. It seems I'm better off using filezilla right now to upload the dist directory
When deploying, if ctrl+c
is pressed any time during the deployment phase, grunt-build-control hangs.
I have to use killall grunt
to kill the process.
I've configured grunt-build-control to commit the built code to the build
branch of the local repository. But now if I clone the repo of this project and build it, I get an error when running grunt buildcontrol
:
Running "buildcontrol:build" (buildcontrol) task
Creating git repository in build.
Initialized empty Git repository in d:/tmp/sffjs/build/.git/
Creating remote.
Warning: error: the requested upstream branch 'remote-36736c/build' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
Use --force to continue.
For it to work, I need to create the local build
branch manually (git branch --track build origin/build
). Is it possible to avoid this?
First, thank you for all the work that went into this. In the recent days I've seen how much time and effort it took to get this right.
I don't use grunt anymore, I'm using gulp in gulp-pipeline and wanted to use this core code in a build agnostic way. I've worked on a port of this to ES2015 classes called build-control without the use of grunt (or gulp) so that it can be used by either or any javascript package. It is available as es
or commonjs
packages.
Here are some differences:
cwd
instead of shelljs.cd()
for no process side effects (or concurrency side effects)I think the behavior is the same; the scenario repos are almost entirely unchanged. Currently, tests are passing and I plan to build a gulp-pipeline recipe. Once I have it working in two of the open source projects I'm involved in, I'll release a stable version (likely this week).
I welcome collaboration and would be happy to add committers to the project if you would like e.g. this grunt-build-control could use the BuildControl
class directly. The grunt glue code can be maintained here and the core there.
If you aren't interested, no problem. I just wanted to say thank you for all the hard work and to let you know I was working on a non-grunt version.
I'd like to be able to pass the sourceBranch token into the branch name so that pushes made from the 1.2.0 branch get pushed to the 1.2.0 remote branch.
branch: '%sourceBranch%',
I can easily replicate the functionality by reusing this replace function down in the try section, but i'm guessing there might be a more complete way to do this? Is there value in supporting all of the tokens in the branch name? How about the tag name? Should we create a reusable function where we can pass a string and have it 'tokenized'.
options.branch = options.branch.replace(/%sourceBranch%/g, tokens.branch);
After looking at the task with fresh eyes, I think we can get rid of manual error catching unless we want to catch and continue. The error warnings after the error code seemed kludgey, and I don't think we would be able to add useful tips beyond what the error itself is reporting.
This is an issue in reverse, already tore them out. But interested in feedback / opinions, and whether we should add some or all back in.
Apologies if this has been answered elsewhere.
I'm trying to push my dist folder to a new gh-pages branch. When I run buildcontrol:pages
it creates the gh-pages branch, but tells me there are untracked files - all the files from my master branch. My master branch is up to date. Could someone let me know what's happening here and how I might rectify it?
Running "buildcontrol:pages" (buildcontrol) task
Creating remote.
Creating branch "gh-pages".
Switched to a new branch 'gh-pages'
Committing changes to gh-pages.
Warning: On branch gh-pages
Initial commit
Untracked files:
../.bowerrc
../.editorconfig
../.gitattributes
../.gitignore
../.jshintrc
../.travis.yml
../Gruntfile.js
../README.md
../app/
../bower.json
../karma-e2e.conf.js
../karma.conf.js
../package.json
../test/
nothing added to commit but untracked files present
Use --force to continue.
Aborted due to warnings.
I get an error when trying to use grunt buildcontrol
on heroku because their git version is 1.7.0, and this grunt plugin depends on git checkout's "orphan" option (which was introduced in git 1.7.2). This StackOverflow article has some more info on that: http://stackoverflow.com/questions/12964196/pulling-in-authenticated-git-repos-on-heroku/12968614
It would be nice if the documentation either stated the dependency on git 1.7.2+ or (if possible) the plugin supported older versions of git.
Thanks!
Hi,
I'm facing an issue while trying to push the same built branch to two different remotes. My current buildcontrol task is:
buildcontrol: {
options: {
dir: 'dist',
commit: true,
push: true,
message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
},
test: {
options: {
remote: '[email protected]:myapp-test.git',
branch: 'master'
}
},
production: {
options: {
remote: '[email protected]:myapp-prod.git',
branch: 'master',
tag: pkg.version
}
}
}
Note: grunt build
is not deleting .git as it is a Yeoman app and follows your instructions.
I am trying to buildcontrol:test
and buildcontrol:production
the same branch (master
) in /dist folder.
The first works fine, as it initialises the git, creates the test remote and sets the master branch to track it, commits and pushes all fine:
Creating remote.
Branch master set up to track remote branch master from remote-860a06.
The second time, it does not allow a different remote, since the master branch is already tracking the test remote (remote-860a06).
Creating remote.
Branch master set up to track remote branch master from remote-e37610.
Warning: The remote and local branches have diverged; please
resolve manually. Deleting the local *built code
.git directory will usually fix things up. Use --force to continue.*
I checked the task source code and I couldn't find a way around this, such as specifying which remote branch to push to. This way I would use two separate branches in the /dist folder, that would push to the master branch in separate remotes:
buildcontrol: {
options: {
dir: 'dist',
commit: true,
push: true,
message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
},
test: {
options: {
remote: '[email protected]:evrythng-db2-test.git',
branch: 'test',
remoteBranch: 'master',
}
},
production: {
options: {
remote: '[email protected]:evrythng-db2-prod.git',
branch: 'prod',
remoteBranch: 'master',
tag: pkg.version
}
}
}
I need to push to master as it is was Heroku needs.
Any ideas?
Hi,
I am not sure if the problem lies with grunt-build-control, but I tried to do something like this:
message: 'Build %sourceName% from <%= grunt.lastTag %>-%sourceCommit%'
where lastTag is a variable that I read with grunt-shell and wrote it to the grunt object before I ran grunt-build-control. When grunt-build-control tries to commit, it hangs indefinitely. I am not really sure why this doesn't work. Is template support not universal in grunt, or could it be something else?
I use buildcontrol for heroku, which sometimes rejects a push (i.e. missing package.json etc)
In this situation I have to manually add and commit the fix in git, because the task will already fail in initBranch()
.
https://github.com/robwierzbowski/grunt-build-control/blob/master/tasks/build_control.js#L126
Right now you can't separately version two branches with the same name for separate repositories:
version_build: {
options: {
dir: 'dist',
commit: true,
push: true
},
some_repo: {
options: {
remote: 'some_remote',
branch: 'master',
}
},
other_repo: {
options: {
remote: 'some_other_remote',
branch: 'master',
}
}
}
If branch took an optional local:remote
pair, you could have some_repo_master:master
and some_other_repo_master:master
. We could either enforce the pair or support both singular and pair configuration.
but not commited (as happens after build) it doesn't commit the file.
Is this the expected behavior?
I was hoping to contribute some tests, but it was too difficult to get solution running locally. I took the following approach:
git clone https://github.com/robwierzbowski/grunt-build-control.git
cd grunt-build-control
npm install
grunt test
At that step I receive the following warning:
Warning: Build directory "dist" doesn't exist. Nothing to version. Use --force to continue.
I tried getting past this step to run tests, but made no progress. Could you please provide some steps to get tests executing so that I can contribute?
When running in a CI environment (for instance Travis), there's no ssh key to help authenticating someone to the remote git.
Github provide https git endpoints that work this way: https://<user>:<token>@github.com/repo.git
We sure can provide the formatted URL manually, but this makes it tricky to keep the secure token
out of the logs. Adding a user
/token
options and ensuring in the task we never log the token would be pretty useful.
Hey, the last version broke the git urls used for pushing.
You can see the failure on this log: https://travis-ci.org/yeoman/yeoman.io/builds/42038456
Basically, adding credentials, the code remove the url path. This mean it'll try pushing to: https://<CREDENTIALS>@github.com
rather than https://<CREDENTIALS>@github.com/user/repo.git
Hi,
I have multiple remote servers I would need to deploy to. Is there a way to configure buildcontrol to handle more than one remote?
I have a specific case where I need clone with this follow config:
git config http.sslVerify false
Any idea how do this? Thanks!
I've been trying to get this up and running on my server, but can't seem to figure it out. It would be awesome if there was an example or at least links to the necessary info to figure it out.
Whenever $ git push -u origin master is being typed this is shown::
ssh:connect to host github.com port 22:Bad file number
fatal:Could not read from remote repository.
I do not understand why this is happening everytime.I am able to initialise git ,git add . and $git remote add origin [email protected]:etotientz/Hello.git. So,please clarify the error.
I was just about to post an issue about the task hanging indefinitely but before I could post it, the task completed ๐
I'm not sure why it took so long though โ I guess it might be because I'm on a crappy internet connection and it's quite an image-heavy site but running the task in verbose mode, it seemed to get stuck at Creating remote
.
Anyway, it made me think it'd be nice if the task could show progress โ perhaps feeding through the git push progress? I'm not even sure if this would be possible but it might help confusion when the task is taking a long time to complete?
As far as I can tell I have successfully configured and ran everything for grunt-build-control. However when I hit the url bmwertman.github.io for my github page I'm still getting a 404 "There isn't a page here". Should I be going through the standard github page deployment process found here https://pages.github.com/? Or some adjusted version of it directing to my gh-pages branch?
AWS EB is using their own command line utility 'eb' to deploy. Is there a way to integrate this in buildcontrol?
Thanks
I keep getting this when trying to run grunt buildcontrol:heroku
Warning: Fetching repository, done.
! Push rejected, no Cedar-supported app detected
To [email protected]:qpham-testing.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:qpham-testing.git'
Use --force to continue.
I was doing it well until one of my project and Repo. named GetNetworkAdaptersStats
caused me a trouble :
On applying commit -m 'first commit'
I get:
On branch master
Initial commit
Untracked files:
GetNetworkAdaptersStats.sln
GetNetworkAdaptersStats.v12.suo
GetNetworkAdaptersStats/
nothing added to commit but untracked files present
PS.Apologies if I'm commiting a duplicated issue because i didn't find a solution to my problem anywhere
@dccatl asked on gitter.im:
Hi, I'm trying to use buildControl to commit to a local branch (non-master) and push to Heroku master branch. I'm trying to use the option remoteBranch but it doesn't seem to be working - always pushes to branch names the same as the local commit.
Would you be able to paste in your config?
It works, but should it? I don't want to encourage bad practices, especially automated ones. Are there common situations where a force push to a remote repo is good practice or required?
Apparently shellJs's exec()
uses a hack that can be buggy at times. Also apparently we're getting execSync()
in the next minor release of node.js.
When it's available, we should switch.
If you have an existing remote branch and a non-bare tree (as you always will) the fetch fails.
Fetching remote branch test-branch.
fatal: Refusing to fetch into current branch refs/heads/test-branch of non-bare repository
fatal: The remote end hung up unexpectedly
Need to fetch remote refs without a checkout somehow.
We are trying to use build control in a semantic versioned distro. I'm hoping to be able to do something like what I posted below. I want to be able to run grunt buildcontrol:alpha
and have a tag that is 2.1.0.alpha.4, or whatever is one number higher than the most recent alpha release matching that version. Of course it'd be nice to still be able to create 1.7.0.alpha.2 if needing to making changes on a different branch.
So logic would basically be, look at all tags for match. If no match then alpha/rc.1. If there is a match then match# +1.
buildcontrol: {
options: {
...
},
alpha: {
options: {
remote: 'git...',
tag: pkg.version + '.alpha.' + number
}
},
rc: {
options: {
remote: 'git...',
tag: pkg.version + '.rc.' + number
}
},
release: {
options: {
remote: 'git...',
tag: pkg.version
}
},
}
I need human readable remote names.
When a config has multiple remotes, it gets very confusing:
build-control: {
options: { },
prod: { },
dev: { }
}
Instead the git remote saying remote-23de
it should say remote-prod-23de
.
Sorry to post this as an issue but I'm struggling for 2 days to get the process of committing my code to a repository and I failed :(
I use yeoman to create an app, I installed the grunt-build-control
, I executed git init
in the main dir (not in "myApp/app") which created a "myApp/.git") .. running grunt build
populates the "myApp/dist" directory but then I'm lost!
Are there any easy step by step (for dummies) on how to deploy my whole app, say, to beanstalkapp and set grunt to build / commit and push my whole app?
Thanks
This module needs some tests something fierce.
If a git conflict occurs (usually because another user has force-pushed to the deployment server) delete the built code directory and run build and build control again.
So that's what the README currently says about git conflicts, but when I (and again, by "I" I mean @bobthebotmaker) actually ran into this problem, it manifested as:
Running "buildcontrol:review" (buildcontrol) task
Warning: The remote and local branches have diverged. Please
resolve manually before attempting again. Use --force to continue.
which led me (him) to throw up his hands and go bug hapless coworkers.
Since there are potentially multiple repos and branches involved here, I think it would be useful if this error message said something more like:
Warning: The remote `aws-review/master` (at e592c71) has diverged from local
`review` (at 8af29e11). You may be able to fix this by deleting your `dist` directory
and attempting again.
Or even offering to delete your dist directory for you!
I have no idea how much of this is convenient or possible, I'll try something after the ๐
Is there a way to use an existing named remote? I have an established heroku
remote for my dist folder that I'd like to use, but it seems I can only specify a remote url.
This would follow the DRY principle and easen configuration.
would allow configuration like this:
heroku: {
options: {
remote: 'heroku',
branch: 'master'
}
},
heroku-staging: {
options: {
remote: 'heroku-staging',
branch: 'master'
}
}
Hi,
tagging is pretty cool option, so it would be nice if you could cut a new release.
I'm deploying yeoman to gh-pages, using the sample config provided. (without heroku) https://github.com/robwierzbowski/grunt-build-control#usage
The first run is fine, it create a gh-pages branch and push it to the github.
But the next run cause issues as follows.
Running "buildcontrol:pages" (buildcontrol) task
Branch gh-pages set up to track remote branch gh-pages from remote-078678.
Committing changes to gh-pages.
Warning: On branch gh-pages
Your branch is up-to-date with 'remote-078678/gh-pages'.
Changes not staged for commit:
deleted: ../.htaccess
deleted: ../404.html
.....................
.....................
.....................
no changes added to commit
Use --force to continue.
Aborted due to warnings.
Execution Time (2014-07-10 14:03:08 UTC)
buildcontrol:pages 10.1s
Currently, I have to keep deleting my local branch, github branch, and delete the dist/.git/
directory and rerun the command again.How do I resolve this issues?
What happened:
I (and by "I" I mean @bobthebotmaker) had local uncommitted changes and tried to invoke grunt-build-control.
I then got the warning:
Running "buildcontrol:lab" (buildcontrol) task
Warning: There are uncommitted changes in your working directory.
Please commit changes to the main project before you commit to the built code.
Use --force to continue.
I was actually testing changes to the Gruntfile, so I didn't want to commit the changes yet because we hadn't verified them by running this command. :ouroboros: So I said, ok, fine, I'll just use --force
to get past this warning like it says I can.
But using --force
causes buildcontrol to fail:
Running "buildcontrol:lab" (buildcontrol) task
Warning: There are uncommitted changes in your working directory.
Please commit changes to the main project before you commit to
the built code.
Used --force, continuing.
Warning: Task "buildcontrol:lab" failed. Used --force, continuing.
If you're not allowed to build with uncommitted files, which seems to be the case, then this should be an error rather than a warning right? Either that or not offering --force
as a way to get around this, if that's possible, would be better imo.
I am using this plugin to separate our core work from compiled dists. I noticed on a clean build (i.e. no build output), the plugin will successfully fetch the remote branch but will end up deleting existing content on the branch besides build output.
It seems like perhaps the plugin needs to temporarily copy any files in the folder somewhere, clean the directory, fetch the remote branch, then copy the output back to ensure it either overwrites or adds content.
Here's an example:
Dist commit that wipes existing files: excaliburjs/excalibur-dist@2ac9d0b
Travis CI output:
Running "buildcontrol:dist" (buildcontrol) task
Creating git repository in "build".
Initialized empty Git repository in /home/travis/build/excaliburjs/Excalibur/build/.git/
Creating remote.
Fetching "test" history from https://<CREDENTIALS>@github.com/excaliburjs/excalibur-dist.
Branch test set up to track remote branch test from remote-c9c835.
Committing changes to "test".
[test 2ac9d0b] :shipit: Built excalibur from commit 8d2684b on branch HEAD
6 files changed, 1 insertion(+), 170 deletions(-)
delete mode 100644 .gitattributes
delete mode 100644 .gitignore
delete mode 100644 LICENSE.md
delete mode 100644 README.md
delete mode 100644 bower.json
create mode 100644 dist/excalibur.min.js.map
Pushing test to https://<CREDENTIALS>@github.com/excaliburjs/excalibur-dist
Here's my task:
buildcontrol: {
options: {
dir: 'build',
commit: true,
push: true,
message: ':shipit: Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%',
config: {
'user.name': 'Travis-CI',
'user.email': '[email protected]'
}
},
// continuous integration dists
dist: {
options: {
branch: 'test', // TODO change to master when tested
remote: 'https://github.com/excaliburjs/excalibur-dist',
login: 'kamranayub',
token: process.env.GH_DIST_TOKEN,
fetchProgress: false
}
}
},
Is this expected?
In my case, the repo is organized like:
- dist/
- README
- LICENSE
- bower.json
And I only copy compiled output to the dist
folder.
I can workaround this by ensuring I clone the repository before copying my build output and then it works but I expected the plugin to gracefully handle a from-scratch build (e.g. on our CI server) without any custom workaround.
Environment:
I'm trying to create a git during build and push the results to a git repository. I always getting errors.
Configuration:
buildcontrol: {
options: {
dir: '.build',
commit: true,
shallowFetch: false,
force: true,
push: true,
message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%',
connectCommits: false
},
vsts: {
options: {
remote: 'https://xxxx.visualstudio.com/DefaultCollection/xxxx/_git/xxxx',
login: 'xxxx',
token: 'xxxx',
branch: 'master',
}
},
azure: {
options: {
remote: 'https://xxxx.scm.azurewebsites.net:443/xxxx.git',
login: 'xxxx',
token: 'xxxx',
branch: 'master',
}
}
}
Azure:
Running "buildcontrol:azure" (buildcontrol) task
events.js:160
throw er; // Unhandled 'error' event
^
Error: This socket is closed
at WriteStream.Socket._writeGeneric (net.js:683:19)
at WriteStream.Socket._write (net.js:734:8)
at doWrite (_stream_writable.js:334:12)
at writeOrBuffer (_stream_writable.js:320:5)
at WriteStream.Writable.write (_stream_writable.js:247:11)
at WriteStream.Socket.write (net.js:661:40)
at Log._write (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:161:26)
at Log.wrapper [as _write] (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at Log._writeln (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:166:8)
at Log.wrapper [as _writeln] (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at Log.writeln (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:177:8)
at Log.wrapper (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at writeln (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt\fail.js:30:13)
at Object.fail.fatal (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt\fail.js:46:3)
at process.uncaughtHandler (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt.js:121:10)
at emitOne (events.js:96:13)
at process.emit (events.js:188:7)
at process._fatalException (bootstrap_node.js:292:26)
Visual Studio Team Services:
Running "buildcontrol:vsts" (buildcontrol) task
Fetching "master" files from https://xxxx.visualstudio.com/DefaultCollection/xxxx/_git/xxxx.
POST git-upload-pack (117 bytes)
POST git-upload-pack (126 bytes)
remote:
remote: vSTs
remote: vSTSVSTSv
remote: vSTSVSTSVST
remote: VSTS vSTSVSTSVSTSV
remote: VSTSVS vSTSVSTSV STSVS
remote: VSTSVSTSvsTSVSTSVS TSVST
remote: VS tSVSTSVSTSv STSVS
remote: VS tSVSTSVST SVSTS
remote: VS tSVSTSVSTSVSts VSTSV
remote: VSTSVST SVSTSVSTs VSTSV
remote: VSTSv STSVSTSVSTSVS
remote: VSTSVSTSVST
remote: VSTSVSTs
remote: VSTs (TM)
remote:
remote: Microsoft (R) Visual Studio (R) Team Services
remote:
remote: Found 3 objects to send. (26 ms)
From https://xxxx.visualstudio.com/DefaultCollection/xxxx/_git/xxxx-LIVE
* branch master -> FETCH_HEAD
* [new branch] master -> remote-f70d2a/master
Branch master set up to track remote branch master from remote-f70d2a.
events.js:160
throw er; // Unhandled 'error' event
^
Error: This socket is closed
at WriteStream.Socket._writeGeneric (net.js:683:19)
at WriteStream.Socket._write (net.js:734:8)
at doWrite (_stream_writable.js:334:12)
at writeOrBuffer (_stream_writable.js:320:5)
at WriteStream.Writable.write (_stream_writable.js:247:11)
at WriteStream.Socket.write (net.js:661:40)
at Log._write (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:161:26)
at Log.wrapper [as _write] (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at Log._writeln (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:166:8)
at Log.wrapper [as _writeln] (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at Log.writeln (G:\_data\r\xxxx\src\node_modules\grunt-legacy-log\index.js:177:8)
at Log.wrapper (G:\_data\r\xxxx\src\node_modules\lodash\index.js:3095:19)
at writeln (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt\fail.js:30:13)
at Object.fail.fatal (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt\fail.js:46:3)
at process.uncaughtHandler (G:\_data\r\xxxx\src\node_modules\grunt\lib\grunt.js:121:10)
at emitOne (events.js:96:13)
at process.emit (events.js:188:7)
at process._fatalException (bootstrap_node.js:292:26)
When I work with SourceTree, all credentials work fine. Thanks for help.
which is wrong and doesn't work. here (in the github repo) It's written correctly
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.