nordnet / cordova-hot-code-push-cli Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] - This is a command line utility for Cordova Hot Code Push Plugin.
Home Page: https://github.com/nordnet/cordova-hot-code-push-cli/issues/79
[DEPRECATED] - This is a command line utility for Cordova Hot Code Push Plugin.
Home Page: https://github.com/nordnet/cordova-hot-code-push-cli/issues/79
I had to run cordova-hcp deploy
unable to sync: BadRequest: null
at Request.extractError (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/services/s3.js:322:35)
at Request.callListeners (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/request.js:596:14)
at Request.transition (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/request.js:21:10)
at AcceptorStateMachine.runTo (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/request.js:37:9)
at Request. (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/request.js:598:12)
at Request.callListeners (/usr/lib/node_modules/cordova-hot-code-push-cli/node_modules/s3-sync-aws/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
unable to sync: BadRequest: null
why??
Assume I'm uploading a new version of the app to s3, and assume this takes 1 minute for all the files to go through.
Within this 1 minute, some users open the app and an update check is triggered. Some files are now updated, and some are not, so the user may have 50% of the new files and 50% of the old files.
Is this scenario handled in any way? I think all files signatures should be checked on the device after they're downloaded, and if they don't completely match, the update should be rejected. Does this feature exist?
Shouldn't the deploy command also respect the ignored file list? Right now it is uploading the entire www directory, including .DS_STORE and other ignored files.
Update documentation according to changes in v1.0.2
Issues originally created in the plugin's repo: nordnet/cordova-hot-code-push#22
@JosephDAM asked:
Running server
Could not create tunnel: [Error: panic: runtime error: invalid memory address or nil pointer dereferencegithub.com/inconshreveable/olive/recover.go:40
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
< autogenerated >:30
< autogenerated >:132
github.com/inconshreveable/olive/recover.go:29
runtime/asm_386.s:412
runtime/panic.go:387
github.com/inconshreveable/olive/error.go:37
runtime/asm_386.s:412
runtime/panic.go:387
runtime/panic.go:42
runtime/os_windows.go:42
github.com/inconshreveable/go-tunnel/client/reconnecting.go:42
github.com/inconshreveable/go-tunnel/client/session.go:97
ngrok/tunnel_session.go:128
ngrok/web_api.go:95
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
< autogenerated >:30
github.com/go-martini/martini/router.go:373
github.com/go-martini/martini/router.go:367
github.com/inconshreveable/olive/error.go:41
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
< autogenerated >:30
github.com/go-martini/martini/router.go:373
github.com/go-martini/martini/router.go:367
github.com/inconshreveable/olive/recover.go:32
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
< autogenerated >:30
github.com/go-martini/martini/router.go:373
github.com/go-martini/martini/router.go:367
github.com/inconshreveable/olive/logger.go:17
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
< autogenerated >:30
github.com/go-martini/martini/router.go:373
github.com/go-martini/martini/router.go:250
github.com/go-martini/martini/router.go:120
github.com/inconshreveable/ngrok/web.go:25
runtime/asm_386.s:413
reflect/value.go:419
reflect/value.go:296
github.com/codegangsta/inject/inject.go:102
github.com/go-martini/martini/martini.go:173
github.com/go-martini/martini/martini.go:69
]Well, when I did "npm install -g cordova-hot-code-push-cli" I got a lot of errors too. Something like "Can't find Python executable 'python'", and it seems related to node-gyp too...
when running cordova-hcp
I get tons of spurious updates for my vim swap files even though I have them in my
.chcpignore
$ cat .chcpignore
chcp.json
chcp.manifest
.*.sw[a-p]
.DS_Store
$ cordova-hcp server
Running server
Checking: www
local_url http://localhost:31284
Config { release: '2015.10.14-13.32.30' }
Build 2015.10.14-13.32.30 created in www
cordova-hcp local server available at: http://localhost:31284
cordova-hcp public server available at: https://291b3fb6.ngrok.com
a user connected
File changed: www/js/index/.index.js.swp
Config { release: '2015.10.14-13.32.51' }
Build 2015.10.14-13.32.51 created in www
Should trigger reload for build: 2015.10.14-13.32.51
File changed: www/js/index/index.js
Config { release: '2015.10.14-13.32.56' }
Build 2015.10.14-13.32.56 created in www
Should trigger reload for build: 2015.10.14-13.32.56
File changed: www/js/index/.index.js.swp
Config { release: '2015.10.14-13.33.01' }
Build 2015.10.14-13.33.01 created in www
Should trigger reload for build: 2015.10.14-13.33.01
Need to update node version in package.json to <= 0.12 or newer.
cordova-hcp deploy copy all the file, should also use chcpignore
The frankfurt aws region uses v4 signatures, which the node-s3-client
package used to upload files doesn't support: andrewrk/node-s3-client#69
The other main aws lib, knox, doesn't support v4 signatures either: Automattic/knox#254
It would be best if this project would use aws-sdk directly, which doesn't have this problem.
I would like to reuse the same S3 bucket for several apps. The s3-sync-aws package supports an prefix option. Can the init and deploy commands be expanded to include this option?
This is because the files are checksummed asynchronously.
Originally asked in nordnet/cordova-hot-code-push#143.
Before it was working properly. When server starts - it creates .chcpenv
config and stores server's url in there. On the next launch it uses it, so that the address would remain the same. But for some reason this stopped working.
air:~ apple$ sudo npm install -g cordova-hot-code-push-cli
Password:
npm WARN peerDependencies The peer dependency level@~1.4.0 included from s3-sync-aws will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN deprecated [email protected]: renamed to d3-queue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
> [email protected] postinstall /usr/local/lib/node_modules/cordova-hot-code-push-cli/node_modules/ngrok
> node ./postinstall.js
sh: node: command not found
/
> [email protected] install /usr/local/lib/node_modules/cordova-hot-code-push-cli/node_modules/level/node_modules/leveldown
> prebuild --install
env: node: No such file or directory
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "cordova-hot-code-push-cli"
npm ERR! node v4.4.7
npm ERR! npm v2.15.8
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] postinstall: `node ./postinstall.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] postinstall script 'node ./postinstall.js'.
npm ERR! This is most likely a problem with the ngrok package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./postinstall.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ngrok
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls ngrok
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/apple/npm-debug.log
Hi,
First of all, thank you for this great plugin which helped me save hours so far.
Since this morning though, the HCP server refuses to start. I tried several thing, including :
I am kind of stuck... What happens is the following :
Here is what happens :
[root@happydev mlb_cordova]# cordova-hcp server
Running server
[root@happydev mlb_cordova]#
I am not sure where to look for logs.
I am willing to help out. If one could give me some tip that could get me going. Any suggestion is most welcome.
So first time looked into the code and found out instead having the generated release timestamp you can run:
VERSION=3 cordova-hcp build
to set your own version.
If you are cool, then let people know you are ;)
Similar to #6 , we need to provide an ability to specify the directory for cordova-hcp server
command.
For example:
cordova-hcp server path/to/directory
If directory not specified - utility uses www
folder.
I don't have amazon stuff.. =) It's no problem to deploy it to my server, but doing this via the cli would be very nice. So maybe add some FTP or other options for deploying.
Ups just saw More deployment targets will be added later
, but an issue is anyway ok, so people can track stuff.
PS: very nice stuff you made..!! Will test it deeply.
It would be nice for CLI client to respect chcpbuild.options
when running cordova-hcp build
to set the content
property.
Requested in nordnet/cordova-hot-code-push#161 .
I'm trying to exclude files nested under subdirectories like 'www/src/any/.'.
I've tried:
src//*
src//.
src/*
and so on.
I can exclude individual files though. Also on Windows if that matters.
Need to simplify the cordova-hcp init
command. People sometimes struggling with the way on how to provide content_url
on the build process.
As suggested in nordnet/cordova-hot-code-push#69 , it would be a nice option for the CLI client to gzip files before uploading them to the server. Especially, JS ones.
Relates to nordnet/cordova-hot-code-push#4 issue.
In short: deploy
command ignores hidden files, while build
doesn't. deploy
should not ignore them.
How to reproduce:
Create Ionic project and add chcp plugin:
ionic start Test blank
cd ./Test
ionic build
ionic plugin add cordova-hot-code-push-plugin
Run server:
cordova-hcp server
Add ionicons
:
ionic add ionicons
As a result, CLI client will update chcp.manifest
and add lib/angular/.bower.json
to it. But if we will try to access it from the browser - it's not gonna be found. This breaks the update procedure.
Is there a way to protect the server side? When you now browse to the content_url you can view directly the application!
Device: On Android 6.0.1, on an Samsung edge s7
If the filenames with a space in the name exists in the manifest, the download fails with an FileNotFound exception.
Updates work file on iOS (tested on iPhone 6 with iOS 9.3.3).
From Android monitor connected to the device failing the update:
08-11 06:39:51.830 15161-15540/app-class W/System.err: java.io.FileNotFoundException: <updateURL>/<file with space>
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:242)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.nordnetab.chcp.main.network.FileDownloader.download(FileDownloader.java:76)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.nordnetab.chcp.main.network.FileDownloader.downloadFiles(FileDownloader.java:51)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.nordnetab.chcp.main.updater.UpdateLoaderWorker.downloadNewAndChangedFiles(UpdateLoaderWorker.java:221)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.nordnetab.chcp.main.updater.UpdateLoaderWorker.run(UpdateLoaderWorker.java:121)
08-11 06:39:51.830 15161-15540/app-class W/System.err: at com.nordnetab.chcp.main.updater.UpdatesLoader$1.run(UpdatesLoader.java:58)
Hello,
I have an issue, created a new release, ran
cordova-hcp build
cordova build android -- chcp-production --release
installed apk
on the remote app server the chcp json is way older
{
"content_url": "x",
"min_native_interface": 7,
"android_identifier": "x",
"apple_identifier": "1089624220",
"update": "now",
"release": "2016.06.11-17.39.13"
}
than the version generated and installed:
{
"content_url": "x",
"min_native_interface": 7,
"android_identifier": "x",
"apple_identifier": "1089624220",
"update": "now",
"release": "2016.08.06-11.57.19"
}
But it still downloads the older one. Is there a way I can check that during compilation it bundles the local chcp.json properly? Or can I debug somehow that what is the locally stored version and why it updates to the older?
Thanks.
When we run cordova-hcp
or cordova-hcp help
- usage instructions should be printed.
Original thread is nordnet/cordova-hot-code-push#245 .
In the main plugin we can define different build options. For example, when building for dev:
cordova build -- chcp-dev
We need a similar option to build dev version of the configs and deploy them on the dev server.
Change chcp
to cordova-hcp
in the readme and init
output. Legacy stuff.
When you run cordova-hcp init
- you can't set now
as an update method, although it is a valid one.
Please provide: Update method (required): (resume) now
error: Invalid input for Update method (required)
error: Needs to be one of start, resume or instant
Should change instant
to now
.
Hi,
I'm trying to make a bower_components directory that gets ignored in hot code push.
I created the .chcpignore file in the root of the project with contents
bower_components/*
When running cordova-hcp server the contents of the bower_components directory still makes it to chcp.manifest. After this hcp fails to update the clients.
Tested using Windows 7.
Cheers
Phil
Correct me if I'm wrong but I understand that the files in the S3 bucket are visible to anyone, do you plan on adding a way to set credentials for the app to get the files ?
Not relevant, but when running cordova-hcp init
, why do you need the ios_identifier
and android_identifier
?
BTW, you made a great work with cordova-hcp and this CLI !
When I use relative resources in my index.html like <link rel="stylesheet" href="css/app.css"/>
, they don't seem to resolve to the full path of the currently installed version of the app.
The webview throws the following error:
file:///css/app.css Failed to load resource: net::ERR_FILE_NOT_FOUND
It is trying to pull it from the root level of the file system instead of something more like this:
file:///data/user/0/com.myapp.package/files/cordova-hot-code-push-plugin/2016.06.13-14.48.41/www/css/app.css
The manifest seems to be correct. It looks like this:
{
"file": "css/app.css",
"hash": "ecbc7d3f4b5d7ea39a72801d05987907"
},
I'm on OSX and I'm currently testing on android with [email protected] and [email protected].
Have you seen this issue before? Thanks for any help you can offer.
When we execute cordova-hcp --version
or cordova-hcp -v
- print out version of the CLI client.
Logging is currently used to indicate when clients connect/disconnect (via socket.io). This only works for clients using the addon. It would be helpful to also see when clients fetch updates, including clients not using the addon. Without this logging it is hard to figure out if the remote updates are working, especially if the client is slow or has limited bandwidth.
Ideally, cordova-hcp server
would log more details about addon clients. The following events should get logged:
For each event, include some details about the client:
For clients not connected via socket.io (not using the addon), requests for individual resources could still be logged, and perhaps some details about the client (platform and model) can be inferred from the user agent header of the request.
Our build directory is outside the repo, and at the moment I have add a lot of ../ to make it work.
Not sure how you'd like to support that, but I think code to change is context.js:44:
return path.join(process.cwd(), consoleArgs[1]);
Original idea came from nordnet/cordova-hot-code-push#108. By default releases are compared as strings. But in some situations we need to install only newer releases. So, need to add support for logic like this in chcp.json:
{
...
"release": {
"version": "2016.02.18-16.47.12",
"compare": ">"
}
}
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
Can I use nginx instead of the nodejs server and Amazon servers?
Hi, i will describe the cycle applied:
Feature request from issue #22: add support for symbolic links. CLI client should detect them and generate manifest files properly.
I'm getting this error when I try to run it.
$ cordova-hcp server
Running server
Checking: /Users/dstaudigel/yt/app/www
local_url http://localhost:31284
Config { name: 'YogiTunes',
ios_identifier: 'net.mountainmandan.yogi-tunes',
android_identifier: 'net.mountainmandan.yogi-tunes',
update: 'resume',
content_url: 'http://app.yogi-tunes.com/versions/www',
release: '2015.11.20-09.50.21' }
events.js:72
throw er; // Unhandled 'error' event
^
Error: EISDIR, read
I'm on OSX 10.11, node version v0.10.38
(though the error also occurs with node 4.2.1). I tried to add debugging logging, stack traces, etc. but was stymied because I couldn't find the events.js file that was actually throwing the error.
I used cordova-chcp build
command to auto-generate the chcp.json config and manifest, and I noticed that it would wipe out my other settings like content_url
and update
.
Is there a way to preserve other settings and only update release
?
Thanks!
If you run cordova-hcp build
on windows machine - chcp.manifest
contains full path to the files instead of the relative ones.
For example, on windows you will get
[
{
"file": "C:\\projekte\\ai\\project\\www\\css\\style.css",
"hash": "0699289c56ae49c509e03e49fdbd0b1b"
}
]
but it should be:
[
{
"file": "css/style.css",
"hash": "0699289c56ae49c509e03e49fdbd0b1b"
}
]
Also, \\
must be replaced with /
since file
is attached to the content_url
as it is.
During my production deployment, my directory isn't named www
. I'd rather be able to run
cordova-hcp build my_www_dir
or whatever argument you want
Deploy started
unable to sync: [Error: Bad status code: 403]
unable to sync: [Error: Bad status code: 403]
Cordova CLI 5.0
double checked my Access Key Id and Secret Access Key, same with the cordova-hcp.json file, even the link https://s3.amazonaws.com is showing the content of the bucket.
any idea on this?
platform info:
Node version: v4.5.0
Cordova version: 6.3.1
id: 1 or "android-23"
Name: Android 6.0
Type: Platform
API level: 23
Revision: 3
error info:
npm WARN peerDependencies The peer dependency level@~1.4.0 included from s3-sync-aws will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN deprecated [email protected]: renamed to d3-queue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
\
[email protected] postinstall C:\Documents and Settings\Administrator.MICROSOF-7AB4F0\Application Data\npm\node_modules\cordova-hot-code-push-cli\node_modules\ngrok
node ./postinstall.js
ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-windows-386.zip ...
ngrok - binary downloaded...
ngrok - binary unpacked.
[email protected] install C:\Documents and Settings\Administrator.MICROSOF-7AB4F0\Application Data\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown
prebuild --install
prebuild WARN install The process cannot access the file because it is being used by another process.
prebuild WARN install ?\C:\Documents and Settings\Administrator.MICROSOF-7AB4F0\Application Data\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown\build\Release\le
veldown.node
prebuild ERR! clean error
prebuild ERR! stack Error: EPERM: operation not permitted, unlink 'C:\Documents and Settings\Administrator.MICROSOF-7AB4F0\Application Data\npm\node_modules\cordova-hot-code-push-cli\node_modules\leve
l\node_modules\leveldown\build\Release\leveldown.node'
prebuild ERR! stack at Error (native)
prebuild ERR! not ok
prebuild ERR! build Error: EPERM: operation not permitted, unlink 'C:\Documents and Settings\Administrator.MICROSOF-7AB4F0\Application Data\npm\node_modules\cordova-hot-code-push-cli\node_modules\leve
l\node_modules\leveldown\build\Release\leveldown.node'
prebuild ERR! build at Error (native)
npm ERR! Windows_NT 5.1.2600
npm ERR! argv "D:\nodejs\node.exe" "D:\nodejs\node_modules\npm\bin\npm-cli.js" "install" "-g" "cordova-hot-code-push-cli"
npm ERR! node v4.5.0
npm ERR! npm v2.15.9
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: prebuild --install
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] install script 'prebuild --install'.
npm ERR! This is most likely a problem with the leveldown package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! prebuild --install
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs leveldown
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls leveldown
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! F:\test\cordova\npm-debug.log
C:\Users\ryanl>npm install -g cordova-hot-code-push-cli
npm WARN peerDependencies The peer dependency level@~1.3.0 included from s3-sync-aws will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN deprecated [email protected]: renamed to d3-queue
npm WARN deprecated [email protected]: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
|
[email protected] postinstall C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\ngrok
node ./postinstall.js
ngrok - downloading binary https://bin.equinox.io/a/54cQjE1obr2/ngrok-2.1.1-windows-386.zip ...
ngrok - binary downloaded...
ngrok - binary unpacked.
[email protected] install C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown
prebuild --install
prebuild WARN install EPERM, access 'C:\Users\ryanl\AppData\Roaming\npm-cache'
prebuild ERR! configure error
prebuild ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
prebuild ERR! stack at failNoPython (C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown\node_modules\prebuild\node_modules\node-gyp\lib\configure.js:401:14)
prebuild ERR! stack at C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown\node_modules\prebuild\node_modules\node-gyp\lib\configure.js:356:11
prebuild ERR! stack at FSReqWrap.oncomplete (fs.js:95:15)
prebuild ERR! not ok
prebuild ERR! build Error: Can't find Python executable "python", you can set the PYTHON env variable.
prebuild ERR! build at failNoPython (C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown\node_modules\prebuild\node_modules\node-gyp\lib\configure.js:401:14)
prebuild ERR! build at C:\Users\ryanl\AppData\Roaming\npm\node_modules\cordova-hot-code-push-cli\node_modules\level\node_modules\leveldown\node_modules\prebuild\node_modules\node-gyp\lib\configure.js:356:11
prebuild ERR! build at FSReqWrap.oncomplete (fs.js:95:15)
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" "install" "-g" "cordova-hot-code-push-cli"
npm ERR! node v0.12.2
npm ERR! npm v2.7.4
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: prebuild --install
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] install script 'prebuild --install'.
npm ERR! This is most likely a problem with the leveldown package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! prebuild --install
npm ERR! You can get their info via:
npm ERR! npm owner ls leveldown
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\ryanl\npm-debug.log
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.