Atom 코드 재사용을 위한 최신 버전의 사양 조사

8201 단어 ElectronATOM
Inkdrop은 플러그인 기구나 키 커스터마이즈 기구 등의 실현을 위해서 Atom의 소스 코드를 일부 유용하고 있다.

새로운 버전을 개발함에 있어서, 전회의 조사로부터 2년 정도 지나므로 다시 조사
사용할 수 있는 곳은 사용해 간다.

라이센스



MIT 그대로. 고맙습니다.

우선 빌드


> script/build
Node:   v11.1.0
Npm:    v6.2.0
Installing script dependencies
Installing apm
apm  2.1.3
npm  6.2.0
node 8.9.3 x64
atom unknown
python 2.7.13
git 2.17.2
Installing modules ✓
Wrote Dependencies Fingerprint: /Users/***/inkdrop/atom/node_modules/.dependencies-fingerprint 1a7626f47939d86d09695ab33831091b020a7347
Copying assets to /Users/***/inkdrop/atom/out/app
Transpiling packages with custom transpiler configurations in /Users/***/inkdrop/atom/out/app
 transpiling for package github
Installing modules ✓
Transpiling Babel paths in /Users/***/inkdrop/atom/out/app
Transpiling CoffeeScript paths in /Users/***/inkdrop/atom/out/app
Transpiling CSON paths in /Users/***/inkdrop/atom/out/app
Transpiling PEG.js paths in /Users/***/inkdrop/atom/out/app
Generating module cache for /Users/***/inkdrop/atom/out/app
Generating pre-built less cache in /Users/***/inkdrop/atom/out/app/less-compile-cache
Generating metadata for /Users/***/inkdrop/atom/out/app/package.json
Generating API docs at /Users/***/inkdrop/atom/docs/output/atom-api.json
Dumping symbols in /Users/***/inkdrop/atom/out/symbols
Running electron-packager on /Users/***/inkdrop/atom/out/app with app name "Atom Dev"
Downloading electron-v2.0.12-darwin-x64.zip
[============================================>] 100.0% of 48.75 MB (7.5 MB/s)
Packaging app for platform darwin x64 using electron v2.0.12
Setting Atom Helper Version for /Users/***/inkdrop/atom/out/Atom Dev.app/Contents/Frameworks/Atom Helper.app/Contents/Info.plist
Copying non-ASAR resources to /Users/***/inkdrop/atom/out/Atom Dev.app/Contents/Resources
Writing LICENSE.md to /Users/***/inkdrop/atom/out/Atom Dev.app/Contents/Resources
Application bundle created at /Users/***/inkdrop/atom/out/Atom Dev.app
Generating snapshot script at "/Users/***/inkdrop/atom/out/startup.js" (3834)
Minifying startup script
Verifying if snapshot can be executed via `mksnapshot`
Generating startup blob at "/Users/***/inkdrop/atom/out/snapshot_blob.bin"
Moving generated startup blob into "/Users/***/inkdrop/atom/out/Atom Dev.app/Contents/Frameworks/Electron Framework.framework/Resources/snapshot_blob.bin"
Skipping code-signing. Specify the --code-sign option to perform code-signing
Skipping artifacts compression. Specify the --compress-artifacts option to compress Atom binaries (and symbols on macOS)
Skipping installation. Specify the --install option to install Atom

개발 절차



이것 htps : // f ぃ ght - 마누아 l. 그리고 m. 이오 / 하 c 킨 g 뒤 m / 세 c 치온 s / 하 c 킨 g 온 뒤 m 이것 / # p t t r m ma c

스냅샷



v8 snapshot 만들고 있다··! ! 시작 매우 빠릅니다. 흉내내고 싶다.
  • electron/mksnapshot: Electron mksnapshot binaries
  • atom/electron-link: A module to bundle your electron app into a single file that can be used for V8 snapshots.

  • apm으로 모든 종속 모듈을 설치했습니다.



    스스로 npm install 그러면 node의 버젼이 맞지 않아 에러가 된다.script/bootstrapapm를 사용하여 모듈을 설치합니다.
    그 때 Electron의 버전과 맞춰 준다.
    그래서 먼저 apm을 설치하는 것 같습니다. 대단한 · ·

    babel 설정


  • github/package.json at master · atom/github

  • atom 전용의 transpiler를 준비하고 있다babel-preset-react 가 들어 있으므로 package에서는 아무것도 신경쓰지 않고 jsx 구문으로 쓸 수 있다.

    flux 아키텍처 도입을 어떻게 할 것인가


    exports/ 디렉토리에 redux등을 던져야 한다. 어쩌면

    메인 프로세스의 로그 얻기


    $ atom --dev --foreground
    

    개발 모드에서 메인 프로세스를 로드하는 절차


    atom --dev에서 /Applications/Atom.app가 개발 모드로 시작됩니다.src/main-process/main.js 에서, 메인 프로세스가 최초로 require 하는 앱의 코드의 패스를 개발 디렉토리로 전환한다.
    60 const start = require(path.join(resourcePath, 'src', 'main-process', 'start'))
    

    따라서 <開発パス>/src/main-process/start.js가 실행됩니다.

    창을 만드는 곳


    src/main-process/atom-window.js :33

    보통으로 BrowserWindow 사용하고 있기 때문에 프레임리스로 하거나 만지다.

    PouchDB를 읽어보십시오



    추가:
    --- a/package.json
    +++ b/package.json
    @@ -137,6 +137,7 @@
         "pathwatcher": "8.0.1",
         "postcss": "5.2.4",
         "postcss-selector-parser": "2.2.1",
    +    "pouchdb": "7.0.0",
         "property-accessors": "^1.1.3",
         "random-words": "0.0.1",
         "resolve": "^1.1.6",
    

    설치:
    > script/bootstrap
    

    시작하지 않았기 때문에 아마 네이티브 모듈이 아칸에서 rebuild :
    > npm install -g electron-rebuild
    > electron-rebuild -v 2.0.12
    

    안전하게 시작되었습니다! main-process에서도 읽을 수 있었기 때문에 멋지다.

    사이드바 추가



    노트북 목록 등을 표시하기 위한 사이드바를 추가해 본다.tree-view 패키지를 packages/side-bar/package.json 에 복사하여 개조.



    할 수 있었다. 헤

    react 대신 etch로 렌더링합니다.


    welcome 와 같은 패키지로 JSX의 서식을 보았지만 이것은 엄밀하게는 react가 아닌 것 같다.
    분명히 etch 라는 atom 독자적인 기술.
    그래서 package에서 react를 사용할 수 없다. 뭐야.
    그렇게 되면 view에 관해서는 완전히 재작성할 필요가 있다.
    그러나 atom의 에디터가 사용하고 싶기 때문에, 공존은 할 수 없을까.

    일단 끝.

    좋은 웹페이지 즐겨찾기