Coder Social home page Coder Social logo

tauri-apps / vue-cli-plugin-tauri Goto Github PK

View Code? Open in Web Editor NEW
371.0 16.0 23.0 3.27 MB

Turn your Vue SPA into a lightweight cross-platform desktop app

Home Page: https://tauri.studio

License: MIT License

JavaScript 100.00%
vue guijs tauri vue-cli-plugin hacktoberfest

vue-cli-plugin-tauri's Introduction

vue-cli-plugin-tauri

Tauri is a toolkit for creating smaller, faster, and more secure desktops applications with a web frontend. This plugin configures Tauri to work in your Vue CLI project.

Deprecation Notice

Just like Vue CLI itself, this plugin is now deprecated and won't receive any updates anymore. Please migrate to @tauri-apps/cli.

Installation

Please visit the documentation website or our discord server if you have any problems.

General Prerequisites:

  • NodeJS/npm
  • Vue CLI (yarn global add @vue/cli / npm i -g @vue/cli)
  • Rust/Cargo

Detailed Prerequisite Installation Instructions:

https://tauri.app/v1/guides/getting-started/prerequisites

Steps:

  1. Create a Vue CLI project (or cd into an existing one)
vue create my-tauri-app
cd my-tauri-app
  1. Install Vue CLI Plugin Tauri
vue add tauri
  1. Run commands

With Yarn:

# Start dev server with HMR
yarn tauri:serve
# Build executable
yarn tauri:build

With npm:

# Start dev server with HMR
npm run tauri:serve
# Build executable
npm run tauri:build

vue-cli-plugin-tauri's People

Contributors

amrbashir avatar codybontecou avatar dependabot[bot] avatar fabianlars avatar karlzeo avatar lucasfernog avatar nklayman avatar nothingismagick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-cli-plugin-tauri's Issues

Unable to run in dev mode

Unable to run app in dev mode

When I run yarn tauri:serve on a freshly created vue app it shows blank screen. Instead if I do yarn tauri:build the app loads fine.

To Reproduce

  1. Create app using https://github.com/tauri-apps/vue-cli-plugin-tauri
  2. Run 'yarn tauri:serve'

Expected behavior

Should load vue app, instead of white screen.

Screenshots

Screenshot 2021-06-25 at 12 32 55 PM

Platform and Versions (required):

Operating System - Mac OS, version 10.15.7 X64

Node.js environment
  Node.js - 15.4.0
  @tauri-apps/cli - 1.0.0-beta.3
  @tauri-apps/api - Not installed

Global packages
  npm - 7.0.15
  yarn - 1.22.4

Rust environment
  rustc - 1.51.0
  cargo - 1.51.0

App directory structure
/node_modules
/public
/src-tauri
/src

App
  tauri.rs - 1.0.0-beta.2
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  distDir - ../webpack_dist
  devPath - http://localhost:8081
  framework - Vue.js (Vue CLI)
  bundler - Webpack

Stack Trace

2021-06-25 12:41:10.420 app[23948:7631938] NSWindow warning: adding an unknown subview: <WKInspectorWKWebView: 0x7f9463f25d10>. Break on NSLog to debug.
2021-06-25 12:41:10.432 app[23948:7631938] Call stack:

        0   AppKit                              0x00007fff2d2d392b -[NSThemeFrame addSubview:] + 112
        1   AppKit                              0x00007fff2d2d3634 -[NSView addSubview:positioned:relativeTo:] + 203
        2   AppKit                              0x00007fff2d2d34f0 -[NSThemeFrame addSubview:positioned:relativeTo:] + 46
        3   WebKit                              0x00007fff40f59bb0 _ZN6WebKit17WebInspectorProxy14platformAttachEv + 384
        4   WebKit                              0x00007fff411e2f08 _ZN6WebKit17WebInspectorProxy4openEv + 96
        5   WebKit                              0x00007fff41420252 _ZN6WebKit17WebInspectorProxy17didReceiveMessageERN3IPC10ConnectionERNS1_7DecoderE + 1710
        6   WebKit                              0x00007fff40f99684 _ZN3IPC18MessageReceiverMap15dispatchMessageERNS_10ConnectionERNS_7DecoderE + 114
        7   WebKit                              0x00007fff4125f232 _ZN6WebKit15WebProcessProxy17didReceiveMessageERN3IPC10ConnectionERNS1_7DecoderE + 28
        8   WebKit                              0x00007fff40f8592b _ZN3IPC10Connection15dispatchMessageENSt3__110unique_ptrINS_7DecoderENS1_14default_deleteIS3_EEEE + 209
        9   WebKit                              0x00007fff40f8528f _ZN3IPC10Connection24dispatchIncomingMessagesEv + 475
        10  JavaScriptCore                      0x00007fff347cbe67 _ZN3WTF7RunLoop11performWorkEv + 551
        11  JavaScriptCore                      0x00007fff347cc01a _ZN3WTF7RunLoop11performWorkEPv + 26
        12  CoreFoundation                      0x00007fff30036d52 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
        13  CoreFoundation                      0x00007fff30036cf1 __CFRunLoopDoSource0 + 103
        14  CoreFoundation                      0x00007fff30036b0b __CFRunLoopDoSources0 + 209
        15  CoreFoundation                      0x00007fff3003583a __CFRunLoopRun + 927
        16  CoreFoundation                      0x00007fff30034e3e CFRunLoopRunSpecific + 462
        17  HIToolbox                           0x00007fff2ec61abd RunCurrentEventLoopInMode + 292
        18  HIToolbox                           0x00007fff2ec617d5 ReceiveNextEventCommon + 584
        19  HIToolbox                           0x00007fff2ec61579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
        20  AppKit                              0x00007fff2d2a7039 _DPSNextEvent + 883
        21  AppKit                              0x00007fff2d2a5880 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
        22  AppKit                              0x00007fff2d29758e -[NSApplication run] + 658
        23  app                                 0x000000010068bed6 _ZN60_$LT$$LP$$RP$$u20$as$u20$objc..message..MessageArguments$GT$6invoke17h90f7000944708029E + 70
        24  app                                 0x000000010068b5f2 _ZN4objc7message8platform15send_unverified17h6c182ccca3ae5a4dE + 98
        25  app                                 0x0000000100124d06 _ZN3tao13platform_impl8platform10event_loop18EventLoop$LT$T$GT$10run_return17h2b8a2136333bd5a1E + 1350
        26  app                                 0x0000000100125147 _ZN3tao13platform_impl8platform10event_loop18EventLoop$LT$T$GT$3run17h59c31582501e2069E + 71
        27  app                                 0x0000000100083426 _ZN3tao10event_loop18EventLoop$LT$T$GT$3run17he9cbf933459d6180E + 118
        28  app                                 0x00000001001c26f9 _ZN65_$LT$tauri_runtime_wry..Wry$u20$as$u20$tauri_runtime..Runtime$GT$3run17h929bd474465a1a84E + 553
        29  app                                 0x000000010030bfe5 _ZN5tauri3app40Builder$LT$E$C$L$C$MID$C$TID$C$A$C$R$GT$3run17hc5012ac43791a91fE + 565
        30  app                                 0x000000010025ae05 _ZN3app4main17h782a36e83d19f4e0E + 3509
        31  app                                 0x000000010005ab2e _ZN4core3ops8function6FnOnce9call_once17he5477bf929002075E + 14
        32  app                                 0x0000000100097b41 _ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hc42a9d3ecc02c961E + 17
        33  app                                 0x00000001001a8724 _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hc4b1f83edddd9cf9E + 20
        34  app                                 0x0000000100b73774 _ZN3std2rt19lang_start_internal17h86f505dc7de50d93E + 644
        35  app                                 0x00000001001a8701 _ZN3std2rt10lang_start17h5ca7d4f5891f38ccE + 65
        36  app                                 0x000000010025b172 main + 34
        37  libdyld.dylib                       0x00007fff6a0d6cc9 start + 1
        38  ???                                 0x0000000000000001 0x0 + 1

Http TS definitions don't match (documentation and actual definitions)

Describe the bug
TS definitions don't match

import http from 'tauri/api/http'

image

https://tauri.studio/en/docs/api/js#functions-4

The get state that options are optional.

To Reproduce
Steps to reproduce the behavior:

  1. vue create some-app (choose vue 3 and typescript)
  2. vue add tauri
  3. Add component:
<template>
  <button @click="getData">Get some data</button>
</template>

<script lang="ts">
import { defineComponent, watchEffect } from 'vue'
import http from 'tauri/api/http'

const App = defineComponent({
  setup() {
    return {
      getData: async function () {
        try {
          await http.get<string>('https://mock.codes/200')
        } catch (e) {
          console.error(e)
        }
      }
    }
  }
})

export default App
</script>

Expected behavior
Should do an API call.

Screenshots
See IDE error above!

Platform and Versions (please complete the following information):


Operating System - Darwin(20.3.0) - darwin/arm64

Node.js environment
  Node.js - 15.14.0
  tauri.js - 0.14.1

Rust environment
  rustc - 1.51.0
  cargo - 1.51.0
  tauri-bundler - 0.9.4

Global packages
  NPM - 7.7.6
  yarn - 1.22.10

App directory structure
/.git
/.idea
/node_modules
/public
/src
/src-tauri

App
  tauri.rs - 0.11.1
  mode - embedded-server
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
  distDir - unset
  devPath - unset

fail run in after release build

Describe the bug
success run in develop mode , while fail run in after build

To Reproduce
Steps to reproduce the behavior:

// create vue project 
vue create apps

cd apps/

// add vue cli plugin tauri 
vue add tauri

// build apps
yarn tauri:build

// success build 

then, open apps/dist_tauri/release and run the exe, the app render the index page and show white screen and no response

Expected behavior
smooth run as yarn tauri:serve

Screenshots
screen shot that running yarn tauri:serve
image

screen shot of after build release
image

Environment (please complete the following information):

npm package version

 "dependencies": {
    "@vue/composition-api": "^1.0.0-beta.6",
    "register-service-worker": "^1.7.1",
    "vue": "^2.6.11",
    "vue-router": "^3.4.1",
    "vuex": "^3.5.1",
    "vuex-class": "^0.3.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-pwa": "^4.4.6",
    "@vue/cli-plugin-router": "^4.4.6",
    "@vue/cli-plugin-typescript": "^4.4.6",
    "@vue/cli-plugin-vuex": "^4.4.6",
    "@vue/cli-service": "~4.4.0",
    "node-sass": "^4.14.1",
    "pug": "^3.0.0",
    "pug-plain-loader": "^1.0.0",
    "sass": "^1.26.5",
    "sass-loader": "^9.0.3",
    "ts-loader": "^8.0.2",
    "typescript": "^3.9.7",
    "vue-cli-plugin-pug": "^1.0.7",
    "vue-cli-plugin-tauri": "~0.11.1",
    "vue-template-compiler": "^2.6.11"
  },

Tauri Info

[tauri]: running info

Operating System - Windows_NT(10.0.18363) - win32/x64
Microsoft Edge - 44.18362.449.0_neutral__8wekyb3d8bbwe

Node.js environment
Node.js - 14.6.0
tauri.js - 0.11.1

Rust environment
rustc - 1.47.0-nightly
cargo - 1.47.0-nightly
tauri-bundler - 0.9.1

Global packages
NPM - 6.14.6
yarn - 1.19.1

App directory structure
/.git
/dist
/dist_tauri
/icons
/node_modules
/public
/src
/src-tauri

App
tauri.rs - 0.9.1
mode - embedded-server
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
distDir - unset
devPath - unset

Additional context
Add any other context about the problem here.

RequestError: connect ECONNREFUSED 127.0.0.1:443

Describe the bug
I try to use yarn tauri:serve command, but it fails. Using tauri dev + vue-cli-service serve, everything works fine. I've tried with NPM as well. The error is:

Downloading Rust CLI...
 ERROR  RequestError: connect ECONNREFUSED 127.0.0.1:443
RequestError: connect ECONNREFUSED 127.0.0.1:443
    at ClientRequest.<anonymous> (/home/rpadovani/Documents/daintree/node_modules/got/dist/source/core/index.js:956:111)
    at Object.onceWrapper (node:events:514:26)
    at ClientRequest.emit (node:events:406:35)
    at ClientRequest.origin.emit (/home/rpadovani/Documents/daintree/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)
    at TLSSocket.socketErrorListener (node:_http_client:447:9)
    at TLSSocket.emit (node:events:394:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1142:16)

To Reproduce
Steps to reproduce the behavior:

  • Run yarn tauri:serve

Environment (please complete the following information):

  • vue-cli-plugin-tauri version : 1.0.0-beta.6
  • other vue plugins used:
  • (if possible) link to your repo: https://gitlab.com/rpadovani/daintree/ - branch feature/tauri
  • output from npx tauri info/yarn tauri info:
➜ yarn tauri info
yarn run v1.22.5
$ /home/rpadovani/Documents/daintree/node_modules/.bin/tauri info
Downloading Rust CLI...
Download Complete
 app:spawn Running "/home/rpadovani/Documents/daintree/node_modules/@tauri-apps/cli/bin/tauri-cli tauri info" +0ms


Operating System - Ubuntu, version 20.04 X64

Node.js environment
  Node.js - 16.6.1
  @tauri-apps/cli - 1.0.0-beta.7
  @tauri-apps/api - 1.0.0-beta.6

Global packages
  npm - 7.20.3
  yarn - 1.22.5

Rust environment
  rustc - 1.54.0
  cargo - 1.54.0

App directory structure
/src
/src-tauri
/.gitlab
/dist
/.git
/.idea
/node_modules
/public

App
  tauri.rs - 1.0.0-beta.7
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  distDir - Set automatically by Vue CLI plugin
  devPath - http://localhost:8080
  framework - Vue.js (Vue CLI)
  bundler - Webpack

Done in 6.89s.

release build cannot access css files

Following exactly the README, nothing else, I have this issue:

yarn tauri:serve works fine but when I build the project with yarn tauri:build, the app displays fine but doesn't react to my interactions

Please note that I also tried installing the .deb package with debtap, I am getting the same error though

$: src-tauri/target/release/app
thread '<unnamed>' panicked at 'Could not read asset /home/chell/Sources/vue/tauri/my-tauri-app/dist_tauri/bundled/css/app.7f6daad7.css?__WB_REVISION__=b6a19a9d11c01ef9bea8: Custom { kind: NotFound, error: "Key not found" }', /home/chell/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-0.6.2/src/server.rs:10:15
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
src-tauri/target/release/app
thread '<unnamed>' panicked at 'Could not read asset /home/chell/Sources/vue/tauri/my-tauri-app/dist_tauri/bundled/css/app.7f6daad7.css?__WB_REVISION__=b6a19a9d11c01ef9bea8: Custom { kind: NotFound, error: "Key not found" }', /home/chell/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-0.6.2/src/server.rs:10:15
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
$: ls -l dist_tauri/bundled/css
.rw-r--r-- 428 chell 26 juin  10:18 app.7f6daad7.css

I also tried starting fresh to avoid any HMR "side effects", the result is the same

Hot Reloading not working in Mac OS. Always loading from cache...

Describe the bug
Hot Reloading isn't working on Mac OS... This one might not be a plugin issue but any help would be appreciated.

So in the dev tools, as far as I can tell it's running safari, but my app.js and vendors.js are always using a cached version even when I have ignore cache, or hard refresh (option + command + r). It works correctly in safari so I'm not sure what the differences are... (hot-reloading doesn't work either)

To Reproduce
Steps to reproduce the behavior:

Expected behavior
Hot Reloading to Work

Screenshots
image

Environment (please complete the following information):

  • vue-cli-plugin-tauri version :
  • other vue plugins used:
  • (if possible) link to your repo:
  • output from npx tauri info/yarn tauri info:

"vue-cli-plugin-tauri": "~0.14.0"

Jest plugin

Operating System - Darwin(19.6.0) - darwin/x64

Node.js environment
 Node.js - 12.16.1
 tauri.js - 0.14.1

Rust environment
 rustc - 1.51.0
 cargo - 1.51.0
 tauri-bundler - 0.9.4

Global packages
 NPM - 6.13.4
 yarn - 1.22.4

App directory structure
/.git
/dist
/node_modules
/public
/src
/src-tauri
/tests

App
 tauri.rs - 0.11.1
 mode - embedded-server
 build-type - bundle
 CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
 distDir - ../dist/spa
 devPath - http://localhost:8081

Additional context
Add any other context about the problem here.

yarn tauri:build checks wrong dist dir for legacy-assets-index.html.json

Describe the bug
Running yarn tauri:build fails while yarn build works fine. It seems that the build CLI is looking for legacy-assets-index.html.json in normal dist path instead of at src-tauri/target/webpack_dist. The file is present in the latter location.

⠏  Building module bundle for production...node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

[Error: ENOENT: no such file or directory, open '/home/ascclemens/code/xivchat-cross-platform/dist/legacy-assets-index.html.json'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/ascclemens/code/xivchat-cross-platform/dist/legacy-assets-index.html.json'
}

To Reproduce
Steps to reproduce the behavior:

  • Run yarn tauri:build

Expected behavior
The build works.

Environment (please complete the following information):

  • vue-cli-plugin-tauri version: 1.0.0-beta.6
  • other vue plugins used: vue-cli-plugin-svg 0.2.1
  • output from npx tauri info/yarn tauri info:
Operating System - Fedora, version 34 X64

Node.js environment
 Node.js - 16.11.0                                                                                               
 @tauri-apps/cli - 1.0.0-beta.10                                                                                 
 @tauri-apps/api - 1.0.0-beta.8                                                                                  
                                                                                                                 
Global packages                                                                                                   
 npm - 8.0.0
 yarn - 1.22.15

Rust environment
 rustc - 1.57.0-nightly
 cargo - 1.57.0-nightly

App directory structure
/.git
/src-tauri
/.idea
/node_modules
/nix
/public
/src

App
 tauri.rs - 1.0.0-beta.8
 build-type - bundle
 CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-
src: 'self'
 distDir - Set automatically by Vue CLI plugin
 devPath - Set automatically by Vue CLI plugin
 framework - Vue.js (Vue CLI)
 bundler - Webpack

Cannot build a small VueJS application on Fedora34, but the same application builds fine on Windows

Describe the bug

Cannot build this small VueJS application on Fedora 34.

To Reproduce

Expected behavior

It should build and start the application.

Error

<snip>
   Compiling image v0.23.14
error[E0658]: const generics are unstable
    --> /home/silvioprog/.cargo/registry/src/github.com-1ecc6299db9ec823/zstd-safe-4.1.0+zstd.1.5.0/src/lib.rs:1214:19
     |
1214 | unsafe impl<const N: usize> WriteBuf for [u8; N] {
     |                   ^
     |
     = note: see issue #74878 <https://github.com/rust-lang/rust/issues/74878> for more information

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `zstd-safe`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

Environment (please complete the following information):

  • vue-cli-plugin-tauri version: latest
  • output from npx tauri info/yarn tauri info:
$ npx tauri info
 app:spawn Running "/home/silvioprog/dev/git/jobsity-vuejs-challenge/node_modules/@tauri-apps/cli/bin/tauri-cli tauri info" +0ms


Operating System - Fedora, version 34.0.0 X64

Node.js environment
  Node.js - 14.17.0
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.2)
  @tauri-apps/api - Not installed

Global packages
  npm - 7.15.1
  yarn - 1.22.10

Rust environment
  rustc - 1.50.0
  cargo - 1.50.0

App directory structure
/.git
/extra
/public
/src
/tests
/node_modules
/src-tauri

App
  tauri.rs - 1.0.0-beta.1
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - Set automatically by Vue CLI plugin
devPath - Set automatically by Vue CLI plugin
framework - Vue.js (Vue CLI)
bundler - Webpack
$ yarn tauri info
yarn run v1.22.10
$ /home/silvioprog/dev/git/jobsity-vuejs-challenge/node_modules/.bin/tauri info
 app:spawn Running "/home/silvioprog/dev/git/jobsity-vuejs-challenge/node_modules/@tauri-apps/cli/bin/tauri-cli tauri info" +0ms


Operating System - Fedora, version 34.0.0 X64

Node.js environment
  Node.js - 14.17.0
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.2)
  @tauri-apps/api - Not installed

Global packages
  npm - 7.15.1
  yarn - 1.22.10

Rust environment
  rustc - 1.50.0
  cargo - 1.50.0

App directory structure
/.git
/extra
/public
/src
/tests
/node_modules
/src-tauri

App
  tauri.rs - 1.0.0-beta.1
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - Set automatically by Vue CLI plugin
devPath - Set automatically by Vue CLI plugin
framework - Vue.js (Vue CLI)
bundler - Webpack

Done in 7.90s.

Additional context

I tried vue-cli-plugin-tauri on Windows and it worked like a charm, generating a workable executable around 9 MB, so it seems the problem isn't related to my application source.

src/cmd.rs is gone?

Do not have this file:
src-tauri/src/cmd.rs

and vue project, window.open() , is not effect

Unable to pass custom CLI arguments when using tauri:serve

Describe the bug
When running "tauri:serve", I need to be able to pass in additional arguments to my application's custom CLI for testing purposes.

Expected behavior
A clear and concise description of what you expected to happen.
Ideally, I'd like to place my arguments/sub-commands like this "yarn tauri:serve --customArg1 'data1' --customArg2 123 "

Tauri freeze with a blank page on start with 1.0.0-rc.0

Describe the bug
Tauri starts with a blank page

To Reproduce
Steps to reproduce the behavior:
Upgrade to 1.0.0-rc.0, then start dev mode

Environment (please complete the following information):

  • OS : WIN11
  • vue-cli-plugin-tauri version : 1.0.0-rc.0
  • other vue plugins used: @tauri-apps/api 1.0.0-rc.0
  • output from npx tauri info/yarn tauri info: command not found: tauri

How to add a webpack plugin?

Hey I'm trying to add a webpack plugin but it doesn't seem to be working, I'm not sure whats up? Currently I've put this in my vue.config.js

const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');

module.exports = {
    configureWebpack: {
        plugins: [new MonacoWebpackPlugin()]
    },
}

The file seems to be running but the plugin isn't loaded, so I'm guessing the key is wrong

UnhandledPromiseRejectionWarning: Unhandled promise rejection

Describe the bug
A clear and concise description of what the bug is.
Upon creating a new project, got the following at the end of tauri:build:

Bundling "/Volumes/MacHD2/apps/app-tauri-first/src-tauri/target/release/bundle/dmg/App First_0.1.0_x64.dmg"
info: running bundle_dmg.sh
Error: failed to bundle project

Caused by:
    Shell Scripting Error:`error running bundle_dmg.sh, try running with --verbose to see command output`

 app:spawn Command "/Volumes/MacHD2/apps/app-tauri-first/node_modules/@tauri-apps/cli/bin/tauri-cli" failed with exit code: 1 +0ms
(node:65482) UnhandledPromiseRejectionWarning: Error
    at d (/Volumes/MacHD2/apps/app-tauri-first/node_modules/@tauri-apps/cli/dist/api/cli.js:1:9485)
    at v (/Volumes/MacHD2/apps/app-tauri-first/node_modules/@tauri-apps/cli/dist/api/cli.js:1:9526)
    at ChildProcess.<anonymous> (/Volumes/MacHD2/apps/app-tauri-first/node_modules/@tauri-apps/cli/dist/api/cli.js:1:10657)
    at ChildProcess.emit (events.js:376:20)
    at maybeClose (internal/child_process.js:1055:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:65482) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:65482) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

To Reproduce
Steps to reproduce the behavior:
vue create my-new-tauri-app
cd my-new-tauri-app
vue add tauri
yarn tauri:serve
then
yarn tauri:build

Environment (please complete the following information):

  • vue-cli-plugin-tauri version : 1.0.0-beta.2

  • other vue plugins used:

    • "@vue/cli-plugin-babel": "~4.5.0",
    • "@vue/cli-plugin-eslint": "~4.5.0",
    • "@vue/cli-plugin-pwa": "~4.5.0",
    • "@vue/cli-plugin-router": "~4.5.0",
    • "@vue/cli-plugin-vuex": "~4.5.0",
    • "@vue/cli-service": "~4.5.0",
    • "@vue/compiler-sfc": "^3.0.0",
  • output from npx tauri info/yarn tauri info:

Operating System - Mac OS, version 10.14.6 X64

Node.js environment
  Node.js - 14.17.0
  @tauri-apps/cli - 1.0.0-beta.1
  @tauri-apps/api - Not installed

Global packages
  npm - 6.14.13
  yarn - 1.22.10

Rust environment
  rustc - 1.52.1
  cargo - 1.52.0

App directory structure
/.git
/node_modules
/public
/src
/src-tauri

App
  tauri.rs - 1.0.0-beta.1
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - Set automatically by Vue CLI plugin
devPath - Set automatically by Vue CLI plugin
framework - Vue.js (Vue CLI)
bundler - Webpack

Additional context
There may not be an issue in the actual app that is built. Would be more confident if it didn't have errors. I do not know exactly how to hunt the issue down myself.

css error when using vue pwa plugin

Describe the bug
I was using my default config with PWA support, I know it's useless in tauri's context but it shouldn't error anyway.

To Reproduce
Steps to reproduce the behavior: select PWA support

Expected behavior
No error when running built package

Environment:

  • vue-cli-plugin-tauri version : 0.7.0
  • other vue plugins used: @vue/cli-plugin-pwa
  • output from npx tauri info/yarn tauri info:
yarn run v1.22.4
$ /home/chell/Sources/vue/tauri/my-tauri-app/node_modules/.bin/tauri info
[tauri]: running info

Operating System - Linux(5.7.5-arch1-1) - linux/x64

Node.js environment
  Node.js - 14.4.0
  tauri.js - 0.7.1

Rust environment
  rustc - 1.44.1
  cargo - 1.44.1
  tauri-bundler - 0.7.0

Global packages
  NPM - 6.14.5
  yarn - 1.22.4

App directory structure
/.git
/dist_tauri
/node_modules
/public
/src
/src-tauri

App  tauri.rs - 0.6.2  mode - embedded-server
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
  Windows - Edge
  distDir - unset
  devPath - unset
Done in 0.30s.

Additional context

The output of ./src-tauri/target/release/app

$: src-tauri/target/release/app
thread '<unnamed>' panicked at 'Could not read asset /home/chell/Sources/vue/tauri/my-tauri-app/dist_tauri/bundled/css/app.7f6daad7.css?__WB_REVISION__=b6a19a9d11c01ef9bea8: Custom { kind: NotFound, error: "Key not found" }', /home/chell/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-0.6.2/src/server.rs:10:15
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
src-tauri/target/release/app
thread '<unnamed>' panicked at 'Could not read asset /home/chell/Sources/vue/tauri/my-tauri-app/dist_tauri/bundled/css/app.7f6daad7.css?__WB_REVISION__=b6a19a9d11c01ef9bea8: Custom { kind: NotFound, error: "Key not found" }', /home/chell/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-0.6.2/src/server.rs:10:15
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Please note that the other vue cli options work fine without pwa

Problem with vue-tauri

Hello.
I installed tauri and vue-tauri following the official documentation.
When I wanted to launch my project seen with the command yarn tauri:serve and I have this error:

 ERROR: tauri.conf.json > tauri > cli should be object +0ms
error Command failed with exit code 1.

yarn tauri info result:

yarn run v1.22.4
$ /srv/http/tauri-test-vue/node_modules/.bin/tauri info
[tauri]: running info

Operating System - Linux(5.6.16-1-MANJARO) - linux/x64

Node.js environment
  Node.js - 14.3.0
  tauri.js - 0.8.2

Rust environment
  rustc - 1.44.1
  cargo - 1.44.1
  tauri-bundler - 0.8.3

Global packages
  NPM - 6.14.5
  yarn - 1.22.4

App directory structure
/node_modules
/public
/src
/src-tauri

App
  tauri.rs - 0.7 (no lockfile)
  mode - embedded-server
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
  Windows - Edge
  distDir - unset
  devPath - unset
Done in 1.19s.

Thank you in advance.

libwebkit2gtk-4.0 is not installable on Ubuntu 20.04 LTS

Describe the bug

If one tries to install a tauri app bundled into a .deb package on Ubuntu 20.04 LTS one get's the error

(...)

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ta-unor-r-is : Depends: libwebkit2gtk-4.0 but it is not installable
E: Unable to correct problems, you have held broken packages.

Would be great if you could complete the docs about how to install the webkit2 "runtime" dependency. I've installed libwebkit2gtk-4.0-dev to make it work probably but it did not help.

To Reproduce
Steps to reproduce the behavior:

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

Additional context
Add any other context about the problem here.

`vue-cli-plugin-tauri` does not have a generator

Describe the bug
My current project uses yarn v2 with pnp enabled. Running vue add tauri results in this output. I also manually ran vue invoke to try to install it that way

$ vue add tauri
 WARN  There are uncommitted changes in the current repository, it's recommended to commit or stash them first.
? Still proceed? Yes

📦  Installing vue-cli-plugin-tauri...

➤ YN0000: ┌ Resolution step
➤ YN0002: │ @vue/babel-plugin-jsx@npm:1.0.5 doesn't provide @babel/core (p60e01), requested by @babel/plugin-syntax-jsx
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed in 0s 342ms
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed in 1s 528ms
➤ YN0000: ┌ Link step
➤ YN0000: └ Completed in 0s 491ms
➤ YN0000: Done with warnings in 2s 682ms
✔  Successfully installed plugin: vue-cli-plugin-tauri

Plugin vue-cli-plugin-tauri does not have a generator to invoke

$ vue invoke tauri
 WARN  There are uncommitted changes in the current repository, it's recommended to commit or stash them first.
? Still proceed? Yes
 ERROR  Error: Plugin vue-cli-plugin-tauri does not have a generator.
Error: Plugin vue-cli-plugin-tauri does not have a generator.
    at invoke ($HOME/.config/yarn/global/node_modules/@vue/cli/lib/invoke.js:55:11)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)

Environment (please complete the following information):

  • vue-cli-plugin-tauri version : I guess latest? I didn't specify one.
  • other vue plugins used: none
  • (if possible) link to your repo: I can't upload it, I'm sorry.
  • output from npx tauri info/yarn tauri info:
$ yarn tauri info
Usage Error: Couldn't find a script named "tauri".

yarn run [--inspect] [--inspect-brk] <scriptName> ...

Additional context
Add any other context about the problem here.

Tauri CLI crate not installed

greetings,

yesterday i had a problem where vue add tauri throw Tauri CLI crate not installed error.
this was solved by install tauri globally however.
would be glad to see even scoped install works.

best of luck.

yarn tauri:build err

Describe the bug
can't build,

image

To Reproduce

  1. vue create app
  2. cd app
  3. vue add tauri
  4. yarn tauri:build

Expected behavior
it can build success.

Environment (please complete the following information):

yarn run v1.22.17
$ /Users/lele/develop/tauri-app/monitor/node_modules/.bin/tauri info

Environment
  › OS: Mac OS 12.4.0 X64
  › Node.js: 16.14.0
  › npm: 8.3.1
  › pnpm: Not installed!
  › yarn: 1.22.17
  › rustup: 1.24.3
  › rustc: 1.61.0
  › cargo: 1.61.0
  › Rust toolchain: stable-aarch64-apple-darwin

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.9
  › @tauri-apps/api [NPM]: Not installed!
  › tauri [RUST]: 1.0.0-rc.11,
  › tauri-build [RUST]: 1.0.0-rc.9,
  › tao [RUST]: 0.8.5,
  › wry [RUST]: 0.16.2,

App
  › build-type: bundle
  › CSP: unset
  › distDir: Set automatically by Vue CLI plugin
  › devPath: Set automatically by Vue CLI plugin
  › framework: Vue.js (Vue CLI)
  › bundler: Webpack

App directory structure
  ├─ node_modules
  ├─ public
  ├─ src-tauri
  ├─ .git
  └─ src
✨  Done in 15.41s.

Additional context
Add any other context about the problem here.

vue-cli-service-serve

'vue' is not recognized as an internal or external command,
operable program or batch file.

Impossible to serve/build on Gnu Linux

Hi,

I'm trying to launch VueJS app with Tauri, when I try to serve I have this error:

yarn run tauri:serve

error: failed to run custom build command for `webview-sys v0.4.0`

Caused by:
  process didn't exit successfully: `/home/tcy/documents/dev/workspaces/js/vue-tauri/src-tauri/target/debug/build/webview-sys-5cdf57a54c168dd1/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Failure { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"webkit2gtk-4.0\" \"webkit2gtk-4.0 >= 2.8\"", output: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "Package webkit2gtk-4.0 was not found in the pkg-config search path.\nPerhaps you should add the directory containing `webkit2gtk-4.0.pc\'\nto the PKG_CONFIG_PATH environment variable\nPackage \'webkit2gtk-4.0\', required by \'virtual:world\', not found\nPackage \'webkit2gtk-4.0\', required by \'virtual:world\', not found\n" } }', src/libcore/result.rs:1165:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

yarn run tauri:build

error: no such subcommand: `tauri-bundler`

 app:spawn Command "cargo" failed with exit code: 101 +0ms

 app:tauri (template) ⚠️  [FAIL] Cargo CLI has failed +0ms

 app:tauri Shutting down tauri process... +1ms
error Command failed with exit code 1.

Thank a lot for this project.

Build of Vue.js 3 app on WSL2-Ubuntu fails

Describe the bug

If I try to build a Vue.js 3 app I get a compilation error:

florian@DESKTOP-AHMD318:~/github/taunorris$ npm run tauri:build

> [email protected] tauri:build
> vue-cli-service tauri:build⠸  Building for production...


 DONE  Compiled successfully in 2813ms                                                                                                              1:53:30 PM

  File                                                          Size                                          Gzipped

  src-tauri/target/webpack_dist/js/chunk-vendors.37c1e350.js    140.12 KiB                                    48.10 KiB
  src-tauri/target/webpack_dist/js/app.37d84ca3.js              4.99 KiB                                      1.97 KiB
  src-tauri/target/webpack_dist/css/app.9770c80a.css            1.84 KiB                                      0.51 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The src-tauri/target/webpack_dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
      
 app:spawn Running "/home/florian/github/taunorris/node_modules/@tauri-apps/cli/bin/tauri-cli tauri build --config {"build":{"distDir":"./target/webpack_dist"}}" +0ms

thread 'main' panicked at 'Couldn't recognize the current folder as a Tauri project.', src/helpers/app_paths.rs:29:3
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

 app:spawn Command "/home/florian/github/taunorris/node_modules/@tauri-apps/cli/bin/tauri-cli" failed with exit code: 101 +0ms
/home/florian/github/taunorris/node_modules/@tauri-apps/cli/dist/api/cli.js:1
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.tauri=t():e.tauri=t()}(this,(function(){return e={210:e=>{e.exports={workspace:{},package:{name:"tauri-cli",version:"1.0.0-beta.1",authors:["Tauri Programme within The Commons Conservancy"],edition:"2018",categories:["gui","web-programming"],license:"Apache-2.0 OR MIT",homepage:"https://tauri.studio",repository:"https://github.com/tauri-apps/tauri",description:"Command line interface for building Tauri apps",include:["src/","/templates","MergeModules/","*.json","*.rs"]},bin:[{name:"cargo-tauri",path:"src/main.rs"}],dependencies:{clap:{version:"3.0.0-beta.2",features:["yaml"]},anyhow:"1.0","tauri-bundler":{version:"1.0.0-beta.0",path:"../bundler"},colored:"2.0",once_cell:"1.7",serde:{version:"1.0",features:["derive"]},serde_json:"1.0",serde_with:"1.9",notify:"4.0",shared_child:"0.3",toml_edit:"0.2","json-patch":"0.2",schemars:"0.8",toml:"0.5.8",valico:"3.6",handlebars:"3.5",include_dir:"0.6",minisign:"0.6",base64:"0.13.0",ureq:"2.1",os_info:"3.0",semver:"0.11",regex:"1.5",lazy_static:"1",libc:"0.2",terminal_size:"0.1.16","unicode-width":"0.1",tempfile:"3",zeroize:"1.3.0"},target:{"cfg(windows)":{dependencies:{winapi:{version:"0.3",features:["winbase","winuser","consoleapi","processenv","wincon"]},encode_unicode:"0.3"}},'cfg(target_os = "linux")':{dependencies:{heck:"0.3"}}},"build-dependencies":{schemars:"0.8",serde:{version:"1.0",features:["derive"]},serde_json:"1.0",serde_with:"1.9"}}},857:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{u(r.next(e))}catch(e){o(e)}}function a(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}u((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.build=t.dev=t.init=void 0;var o=n(889);function s(e,t){return r(this,void 0,void 0,(function(){var n,r,s,a,u,c;return i(this,(function(i){switch(i.label){case 0:for(n=[],r=0,s=Object.entries(t);r<s.length;r++)a=s[r],u=a[0],!1!==(c=a[1])&&(n.push("--"+u.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase()),!0!==c&&n.push("string"==typeof c?c:JSON.stringify(c)));return[4,o.runOnRustCli(e,n)];case 1:return[2,i.sent()]}}))}))}t.init=function(e){return r(void 0,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,s("init",e)];case 1:return[2,t.sent()]}}))}))},t.dev=function(e){return r(void 0,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,s("dev",e)];case 1:return[2,t.sent()]}}))}))},t.build=function(e){return r(void 0,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,s("build",e)];case 1:return[2,t.sent()]}}))}))}},632:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{u(r.next(e))}catch(e){o(e)}}function a(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}u((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.downloadRustup=t.downloadCli=void 0;var s=o(n(413)),a=n(669),u=o(n(747)),c=o(n(301)),l=o(n(622)),f=a.promisify(s.default.pipeline),d=n(210),p={};function h(e,t,n){return r(this,void 0,void 0,(function(){var r,o;return i(this,(function(i){switch(i.label){case 0:return r="https://github.com/tauri-apps/binary-releases/releases/download/"+e+"/"+t,o=function(){try{r in p||u.default.unlinkSync(n)}finally{process.exit()}},process.on("exit",o),process.on("SIGINT",o),process.on("SIGTERM",o),process.on("SIGHUP",o),process.on("SIGBREAK",o),[4,f(c.default.stream(r),u.default.createWriteStream(n)).catch((function(e){throw o(),e}))];case 1:return i.sent(),p[r]=!0,u.default.chmodSync(n,448),console.log("Download Complete"),[2]}}))}))}t.downloadCli=function(){return r(this,void 0,void 0,(function(){var e,t,n,r;return i(this,(function(i){switch(i.label){case 0:if(e=d.package.version,"win32"===(t=process.platform))t="windows";else if("linux"===t)t="linux";else{if("darwin"!==t)throw Error("Unsupported platform");t="macos"}return n="windows"===t?".exe":"",r=l.default.join(__dirname,"../../bin/tauri-cli"+n),console.log("Downloading Rust CLI..."),[4,h("tauri-cli-v"+e,"tauri-cli_"+t+n,r)];case 1:return i.sent(),[2]}}))}))},t.downloadRustup=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return e="win32"===process.platform?"rustup-init.exe":"rustup-init.sh",console.log("Downloading Rustup..."),[4,h("rustup",e,l.default.join(__dirname,"../../bin/"+e))];case 1:return[2,t.sent()]}}))}))}},976:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i,o=r(n(242)),s=r(n(517));t.default=function(e,t){return void 0===t&&(t=o.default.green),function(n){var r=+new Date,a=r-(i||r);i=r,n?console.log(" "+t(String(e))+" "+n+" "+o.default.green("+"+s.default(a))):console.log()}}},889:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{u(r.next(e))}catch(e){o(e)}}function a(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}u((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},o=this&&this.__spreadArray||function(e,t){for(var n=0,r=t.length,i=e.length;n<r;n++,i++)e[i]=t[n];return e};Object.defineProperty(t,"__esModule",{value:!0}),t.runOnRustCli=void 0;var s=n(747),a=n(622),u=n(71),c=n(632);t.runOnRustCli=function(e,t){return r(this,void 0,void 0,(function(){var r,l,f,d,p,h,v,w,b;return i(this,(function(i){switch(i.label){case 0:return r=a.resolve(__dirname,"../.."),l=a.join(r,"bin/tauri-cli"+("win32"===process.platform?".exe":"")),h=new Promise((function(e,t){f=e,d=function(){return t(new Error)}})),v=function(e,t){0===e?f():d()},s.existsSync(l)?(p=u.spawn(l,o(["tauri",e],t),process.cwd(),v),[3,4]):[3,1];case 1:return[4,c.downloadCli()];case 2:return i.sent(),p=u.spawn(l,o(["tauri",e],t),process.cwd(),v),[3,4];case 3:s.existsSync(a.resolve(r,"../bundler"))?(w=a.resolve(r,"../cli.rs"),u.spawnSync("cargo",["build","--release"],w),b=a.resolve(r,"../cli.rs/target/release/cargo-tauri"),p=u.spawn(b,o(["tauri",e],t),process.cwd(),v)):(u.spawnSync("cargo",["install","--root",r,"tauri-cli","--version",n(210).package.version],process.cwd()),p=u.spawn(l,o(["tauri",e],t),process.cwd(),v)),i.label=4;case 4:return[2,{pid:p,promise:h}]}}))}))}},71:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.spawnSync=t.spawn=void 0;var i=r(n(793)),o=r(n(976)),s=r(n(242)),a=o.default("app:spawn"),u=o.default("app:spawn",s.default.red);t.spawn=function(e,t,n,r){a('Running "'+e+" "+t.join(" ")+'"'),a();var o=i.default(e,t,{stdio:"inherit",cwd:n,env:process.env});return o.on("close",(function(t){a(),t&&a('Command "'+e+'" failed with exit code: '+t),r&&r(null!=t?t:0,o.pid)})),o.pid},t.spawnSync=function(e,t,n,r){a('[sync] Running "'+e+" "+t.join(" ")+'"'),a();var o=i.default.sync(e,t,{stdio:"inherit",cwd:n});(o.status||o.error)&&(u(),u('⚠️  Command "'+e+'" failed with exit code: '+o.status),null===o.status&&u('⚠️  Please globally install "'+e+'"'),r&&r(),process.exit(1))}},242:e=>{"use strict";e.exports=require("chalk")},793:e=>{"use strict";e.exports=require("cross-spawn")},747:e=>{"use strict";e.exports=require("fs")},301:e=>{"use strict";e.exports=require("got")},517:e=>{"use strict";e.exports=require("ms")},622:e=>{"use strict";e.exports=require("path")},413:e=>{"use strict";e.exports=require("stream")},669:e=>{"use strict";e.exports=require("util")}},t={},function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}(857);var e,t}));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

Error
    at d (/home/florian/github/taunorris/node_modules/@tauri-apps/cli/dist/api/cli.js:1:9485)
    at v (/home/florian/github/taunorris/node_modules/@tauri-apps/cli/dist/api/cli.js:1:9526)
    at ChildProcess.<anonymous> (/home/florian/github/taunorris/node_modules/@tauri-apps/cli/dist/api/cli.js:1:10657)
    at ChildProcess.emit (node:events:394:28)
    at maybeClose (node:internal/child_process:1067:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
florian@DESKTOP-AHMD318:~/github/taunorris$

To Reproduce

Steps to reproduce the behavior:

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • vue-cli-plugin-tauri version :
florian@DESKTOP-AHMD318:~/github/taunorris$ vue info | grep vue-cli-plugin-tauri
    vue-cli-plugin-tauri: ~1.0.0-beta.2 => 1.0.0-beta.2
  • other vue plugins used:
florian@DESKTOP-AHMD318:~/github/taunorris$ vue info

Environment Info:

  System:
    OS: Linux 5.4 Ubuntu 20.04.2 LTS (Focal Fossa)
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  Binaries:
    Node: 16.3.0 - ~/.nvm/versions/node/v16.3.0/bin/node
    Yarn: Not Found
    npm: 7.15.1 - ~/.nvm/versions/node/v16.3.0/bin/npm
  Browsers:
    Chrome: Not Found
    Firefox: Not Found
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.2.1 
    @vue/babel-helper-vue-transform-on:  1.0.2 
    @vue/babel-plugin-jsx:  1.0.6 
    @vue/babel-plugin-transform-vue-jsx:  1.2.1 
    @vue/babel-preset-app:  4.5.13 
    @vue/babel-preset-jsx:  1.2.4 
    @vue/babel-sugar-composition-api-inject-h:  1.2.1 
    @vue/babel-sugar-composition-api-render-instance:  1.2.4 
    @vue/babel-sugar-functional-vue:  1.2.2 
    @vue/babel-sugar-inject-h:  1.2.2 
    @vue/babel-sugar-v-model:  1.2.3 
    @vue/babel-sugar-v-on:  1.2.3 
    @vue/cli-overlay:  4.5.13 
    @vue/cli-plugin-babel: ~4.5.0 => 4.5.13 
    @vue/cli-plugin-eslint: ~4.5.0 => 4.5.13 
    @vue/cli-plugin-router:  4.5.13 
    @vue/cli-plugin-typescript: ~4.5.0 => 4.5.13 
    @vue/cli-plugin-vuex: ~4.5.0 => 4.5.13 
    @vue/cli-service: ~4.5.0 => 4.5.13 
    @vue/cli-shared-utils:  4.5.13 
    @vue/compiler-core:  3.1.1 
    @vue/compiler-dom:  3.1.1 
    @vue/compiler-sfc: ^3.0.0 => 3.1.1 
    @vue/compiler-ssr:  3.1.1 
    @vue/component-compiler-utils:  3.2.1 
    @vue/devtools-api:  6.0.0-beta.14 
    @vue/eslint-config-prettier: ^6.0.0 => 6.0.0 
    @vue/eslint-config-typescript: ^7.0.0 => 7.0.0 
    @vue/preload-webpack-plugin:  1.1.2 
    @vue/reactivity:  3.1.1 
    @vue/runtime-core:  3.1.1 
    @vue/runtime-dom:  3.1.1 
    @vue/shared:  3.1.1 
    @vue/web-component-wrapper:  1.3.0 
    eslint-plugin-vue: ^7.0.0 => 7.11.1 
    typescript: ~4.1.5 => 4.1.5 
    vue: ^3.0.0 => 3.1.1 
    vue-axios: ^3.2.4 => 3.2.4 
    vue-cli-plugin-tauri: ~1.0.0-beta.2 => 1.0.0-beta.2 
    vue-eslint-parser:  7.6.0 
    vue-hot-reload-api:  2.3.4 
    vue-loader:  15.9.7 (16.2.0)
    vue-style-loader:  4.1.3 
    vue-template-es2015-compiler:  1.9.1 
    vuex: ^4.0.0-0 => 4.0.1 
  npmGlobalPackages:
    @vue/cli: 4.5.13
florian@DESKTOP-AHMD318:~/github/taunorris$ npx tauri info
 app:spawn Running "/home/florian/github/taunorris/node_modules/@tauri-apps/cli/bin/tauri-cli tauri info" +0ms


Operating System - Ubuntu, version 20.04 X64

Node.js environment
  Node.js - 16.3.0
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.2)

Global packages
  npm - 7.15.1
  yarn - 0.32+git

Rust environment
  rustc - 1.47.0
  cargo - 1.46.0

Additional context
Add any other context about the problem here.

vue-cli-service is not recognized as an internal or external command when using Vite built

Describe the bug
A clear and concise description of what the bug is.
This might not necessarily be your problem, or something to fix. But would be appreciated to get working correctly.
The documentation works fine, creating a vue cli project, and using vue add tauri. It works. However, when using "npm init vue@latest" to create a vue app, it uses Vite. This causes an error.
To Reproduce
Steps to reproduce the behavior:

  1. use "npm init vue@latest" from https://vuejs.org/guide/quick-start.html#with-build-tools
  2. Skip to step two of https://github.com/tauri-apps/vue-cli-plugin-tauri "vue add tauri"
  3. Run yarn tauri:build

Expected behavior
A clear and concise description of what you expected to happen.
It should build
Screenshots
If applicable, add screenshots to help explain your problem.
Not applicable
Environment (please complete the following information):

  • vue-cli-plugin-tauri version : ~1.0.0-rc.2
  • other vue plugins used: vite
  • (if possible) link to your repo:
  • output from npx tauri info/yarn tauri info:
Environment
  › OS: Windows 10.0.22000 X64
  › Webview2: 101.0.1210.47
  › MSVC: 
      - Visual Studio Build Tools 2022
  › Node.js: 16.14.2
  › npm: 8.5.0
  › pnpm: 6.11.0
  › yarn: 1.22.15
  › rustup: 1.24.3
  › rustc: 1.60.0
  › cargo: 1.60.0
  › Rust toolchain: stable-x86_64-pc-windows-msvc 

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.9
  › @tauri-apps/api [NPM]: Not installed!
  › tauri [RUST]: 1.0.0-rc.7 (no lockfile),
  › tauri-build [RUST]: no manifest (no lockfile),
  › tao [RUST]: no manifest (no lockfile),
  › wry [RUST]: no manifest (no lockfile),

App
  › build-type: bundle
  › CSP: unset
  › distDir: Set automatically by Vue CLI plugin
  › devPath: Set automatically by Vue CLI plugin
  › framework: Vue.js

Additional context
Add any other context about the problem here.
It's really more of a QOL thing considering vue prefers using Vite over vue cli

run failed according https://github.com/tauri-apps/vue-cli-plugin-tauri/README in win10

Describe the bug
A clear and concise description of what the bug is.
图片

To Reproduce
Steps to reproduce the behavior:

insatll and run according https://github.com/tauri-apps/vue-cli-plugin-tauri/README in win10

Environment (please complete the following information):

  • vue-cli-plugin-tauri version :
  • other vue plugins used:
  • (if possible) link to your repo:
  • output from npx tauri info/yarn tauri info:

图片

Additional context
Add any other context about the problem here.

Call `myCustomCommand` from JS

I can't find something related to this in the documentation. I'm pretty sure it's not a bug but I'm lost.

In the generated file main.rs there is a command that I should be able to run directly in my JavaScript.
It seems I have to use tauri.invoke and passing a JSON.

 tauri.invoke({
    "cmd": {
      "myCustomCommand": ["toto"],
    }
 });

Of course it's not this ...

I think generate a component, or use the HelloWorld to show how use this can be useful

Cannot create tauri-apps / vue-cli-plugin-tauri successfully on win10 21H1

Describe the bug
A clear and concise description of what the bug is.

When I try to install tauri-apps/vue-cli-plugin-tauri in a empty folder,and I don't know how to do,I have also tried to install with npm and yarn, but none of them succeeded,The following error occurred:

× Error: Command failed: C:\Windows\system32\cmd.exe /s /c "./configure --with-system-zlib --prefix="D:\DevProgram\GUI\tauri\tauridemo\node_modules\optipng-bin\vendor" --bindir="D:\DevProgram\GUI\tauri\tauridemo\node_modules\optipng-bin\vendor""
'.' �����ڲ����ⲿ���Ҳ���ǿ����еij���
���������ļ���

at D:\DevProgram\GUI\tauri\tauridemo\node_modules\bin-build\node_modules\execa\index.js:231:11
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async Promise.all (index 0)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: node lib/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\AWACS\AppData\Roaming\npm-cache_logs\2021-08-18T15_04_38_172Z-debug.log
ERROR command failed: npm install --loglevel error vue-cli-plugin-tauri -D
Error with command: npx
Error: Error: Command failed with exit code 1: npx @vue/cli add tauri --appName tauridemo --windowTitle Tauri App
at C:\Users\AWACS\AppData\Roaming\npm-cache_npx\18324\node_modules\create-tauri-app\dist\index.js:63:15
at Generator.throw ()
at rejected (C:\Users\AWACS\AppData\Roaming\npm-cache_npx\18324\node_modules\create-tauri-app\dist\index.js:40:65)
at processTicksAndRejections (internal/process/task_queues.js:95:5)

`vue add tauri` build error

Describe the bug
vue-demo % vue add tauri

WARN There are uncommitted changes in the current repository, it's recommended to commit or stash them first.
? Still proceed? Yes

📦 Installing vue-cli-plugin-tauri...

npm ERR! code 1
npm ERR! path /Users/admin/Desktop/vue-demo/node_modules/sharp
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o
npm ERR! LIBTOOL-STATIC Release/nothing.a
npm ERR! TOUCH Release/obj.target/libvips-cpp.stamp
npm ERR! CXX(target) Release/obj.target/sharp/src/common.o
npm ERR! (node:59918) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
npm ERR! (Use node --trace-deprecation ... to show where the warning was created)
npm ERR! warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: archive library: Release/nothing.a the table of contents is empty (no object file members in the library define global symbols)
npm ERR! ../src/common.cc:24:10: fatal error: 'vips/vips8' file not found
npm ERR! #include <vips/vips8>
npm ERR! ^~~~~~~~~~~~
npm ERR! 1 error generated.
npm ERR! make: *** [Release/obj.target/sharp/src/common.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: make failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/Users/admin/Desktop/vue-demo/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:394:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Darwin 20.6.0
npm ERR! gyp ERR! command "/opt/homebrew/Cellar/node/16.3.0/bin/node" "/Users/admin/Desktop/vue-demo/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /Users/admin/Desktop/vue-demo/node_modules/sharp
npm ERR! gyp ERR! node -v v16.3.0
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/admin/.npm/_logs/2021-09-01T12_25_30_769Z-debug.log
ERROR command failed: npm install --loglevel error vue-cli-plugin-tauri -D --legacy-peer-deps

To Reproduce
Steps to reproduce the behavior:

Expected behavior
install success without error

Environment (please complete the following information):
bigusr11.5.2 m1

Bug: Rebuild causes Console to throw errors.

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Create Tauri Example using Vue CLI Tauri Addon
  2. Build an example for development using the serve command
  3. Change your files or rebuild the project
  4. See error

Expected behavior
Should rebuild and not throw an error.

Platform and Versions (please complete the following information):

OS: Windows/Linux/Mac

Additional context
This happens on Tauri Source and on the current release.

Stack Trace
Errors like this result in the build.rs file not properly executing on every rebuild.

   Compiling app v0.1.0 (/home/noah/Documents/html/tauri-vue/src-tauri)
   Compiling tauri v0.3.1
error: couldn't read /home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js.map: No such file or directory (os error 2)
  --> /home/noah/Documents/html/tauri-vue/src-tauri/target/debug/build/tauri-f5fbc77f9e2cae11/out/data.rs:13:131
   |
13 |         ("/home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js.map", (::tauri_includedir::Compression::None, include_bytes!("/home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js.map"))),
   |                                                                                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: couldn't read /home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js: No such file or directory (os error 2)
  --> /home/noah/Documents/html/tauri-vue/src-tauri/target/debug/build/tauri-f5fbc77f9e2cae11/out/data.rs:16:127
   |
16 |         ("/home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js", (::tauri_includedir::Compression::None, include_bytes!("/home/noah/Documents/html/tauri-vue/dist_tauri/bundled/js/app.c185c68e.js"))),
   |                                                                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 2 previous errors

error: could not compile `tauri`.

To learn more, run the command again with --verbose.
error: Result of `cargo build` operation was unsuccessful: exit code: 101

 app:tauri Shutting down tauri process... +68ms
Done in 6.11s.

tauri fs APIs not working

i am using this vue plugin for testing tauri out. Not sure if the issue is with tauri core of this plugin.

I have a simple js file that has following

import { readDir } from "tauri/api/fs";

readDir(".").then(d => {
    console.log(d)
})

export default 1;

the default export is just so that I can import this file in my App.vue and nothing else. intellisense shows that this code is correct and I can navigate through it as well, but after running it with yarn tauri:serve I get following error

CONSOLE LOG [HMR] Waiting for update signal from WDS...
undefined:73:56: CONSOLE ERROR TypeError: undefined is not an object (evaluating '_tauri__WEBPACK_IMPORTED_MODULE_0__["default"].readDir')
CONSOLE INFO Download the Vue Devtools extension for a better development experience:

This is the entire error unfortunately, there's no stack trace or anything.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.