Electron: запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: API для получСния ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ с исходным ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 16 мая 2015  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: electron/electron

Когда я дСлаю, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cd myapp/ ΠΈ electron app.js , Π²Ρ‹Π²ΠΎΠ΄ process.cwd() Π±ΡƒΠ΄Π΅Ρ‚ /Users/maxogden/myapp .

Однако, ΠΊΠΎΠ³Π΄Π° я ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽ + Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСктронного ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° , это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Contents/Resources/app Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Electron.app со страницы Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² , process.cwd() - это / .

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Electron Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ process.cwd, установлСнным Π² / , Π½ΠΎ Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ Ссли Π²Ρ‹ запуститС process.cwd() Π² консоли Π² Atom .app Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ / .

Моя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π½Π΅Ρ‚ способа ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ исходным Ρ„Π°ΠΉΠ»Π°ΠΌ прилоТСния, СдинствСнный способ - Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ __dirname Π² основном исполняСмом скриптС прилоТСния, Π½ΠΎ это Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ‚Π°ΠΊΠΈΠ΅ случаи, ΠΊΠ°ΠΊ моя строка мСню модуля, Π³Π΄Π΅ сСйчас API:

var menubar = require('menubar')
var mb = menubar()
mb.on('ready', function ready () {
  console.log('app is ready')
})

Но это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ прилоТСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ строка мСню ΠΈΡ‰Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ index.html page для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ process.cwd() здСсь , Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ process.cwd() - это / вмСсто /Users/maxogden/myapp/Example.app/Contents/Resources/app Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ index.html ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ загруТаСтся.

Π£ ΡƒΠ·Π»ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ process.cwd () всСгда Π½Π°Π΄Π΅ΠΆΠ΅Π½, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ process.cwd () ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‰ΡŒ Mac OS X, которая Π·Π½Π°Π΅Ρ‚).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ строку мСню, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ __dirname , Π½ΠΎ это Π½Π΅ идСально ΠΈ Π½Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это:

  • ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ process.cwd() Π½Π° Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ прилоТСния
  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ Π² app.getPath которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ прилоТСния

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° process.resourcesPath , это Π² основном Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ описываСтС для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° process.resourcesPath , это Π² основном Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ описываСтС для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

@paulcbetts Π°Ρ…Ρ…Ρ…Ρ…Ρ…Ρ… спасибо, я Π΄Π°ΠΆΠ΅ Π½Π΅ осознавал, Ρ‡Ρ‚ΠΎ https://github.com/atom/electron/blob/cd0aa4a956cb7a13cbe0e12029e6156c3e892924/docs/api/process.md#process -object сущСствуСт (я Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π», Ρ‡Ρ‚ΠΎ элСктрон process обСзьяна Π±ΡƒΠ΄Π΅Ρ‚

Π‘Ρ‹Π»Π° эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π°Ρ‚ΠΎΠΌΠ΅, Π³Π΄Π΅ path.resolve('something') Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎ /something . Π£ мСня сломался Ρ†Π»ΠΈΠ½Ρ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ:

ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ init.coffee (Atom> Настройки> Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ...) ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅:

process.chdir(atom.project.getPaths()[0])
Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ