尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Your Lithuanian songbook, with lyrics, sheet music, recordings, chords, and more
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗This is an Expo project. As best as I understand it, Expo is a framework to make everything about developing with React Native easier. This project was created with create-expo-app.
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH, and a plain npm i -g pnpm now gets a newer major.
Install it with npm i -g pnpm@10 or corepack prepare pnpm@10 --activate. (There is
deliberately no packageManager field; Vercel's handling of it broke the deployments.)pnpm install
This is a pnpm workspace: the root is the Expo app (and, built for the web, https://dainorelis.app) and
admin/ is the CMS (see admin/README.md). To refresh the bundled song data, copy
.env.example to .env, fill in ADMIN_EXPORT_TOKEN, and run pnpm update-songs.
pnpm dev:web
pnpm dev:ios
pnpm dev:android
For Android and iOS to work, you'll probably have to do some setup. Here's some reading to get you started:
If you don't want to deal with the Test Flight or Google Play Console to test a production build on your own device, try this:
# Android
npx expo run:android --variant release --device
# iOS
npx expo run:ios --configuration Release --device
Note that plugins/withIosReleaseScheme.js sets the Xcode scheme's Run action to Release, so
Run in Xcode also builds Release.
plugins/withAndroidReleaseSigning.js makes the release build type use an upload keystore read
from Gradle properties. Without them the release build is unsigned and can't be installed. Put
them in ~/.gradle/gradle.properties (not android/gradle.properties, which prebuild
generates):
MYAPP_UPLOAD_STORE_FILE=/absolute/path/to/upload-key.keystore
MYAPP_UPLOAD_STORE_PASSWORD=...
MYAPP_UPLOAD_KEY_ALIAS=...
MYAPP_UPLOAD_KEY_PASSWORD=...
A relative MYAPP_UPLOAD_STORE_FILE resolves against android/app/. Keystores are gitignored.
If you do want to deal with TestFlight or Google Play Console to test a production build on your device (or other peoples' devices)... or if you're just ready to release a new version of the app, check this out:
Run npx expo prebuild --clean right before every store build. app.config.ts generates
the build number (yymmdd##, used for both versionCode and CFBundleVersion) and reads the
version from package.json when prebuild generates ios/ and android/. expo run:* only
prebuilds when a folder is missing, and Gradle and Xcode reuse what is on disk, so an older folder
carries an old number and the stores reject a reused one. For a second build on the same
day, bump buildToday in app.config.ts first. Prebuilding iOS runs pod install, so do it on
a Mac.
Prebuild also pulls the latest songs from the admin (plugins/withSongSync.js runs
pnpm update-songs, so .env needs ADMIN_EXPORT_TOKEN) and fails if it can't. If it says the
song data changed, commit it. SKIP_SONG_SYNC=1 skips the sync for throwaway native builds, never
for a store build.
Routes live in the app directory. Those routes' components/hooks/utils/whatever live in the lib directory.
ios/ and android/ aren't committed: they are generated
(Continuous Native Generation)
from app.config.ts and the config plugins in plugins/. pnpm dev:ios / pnpm dev:android
generate them the first time. After an SDK bump, or changing app.config.ts, a plugin, assets
or a library with native code, regenerate them with
npx expo prebuild --clean
before continuing with the dev commands up above. Never hand-edit the generated folders (the
next prebuild wipes them); put native config in app.config.ts or a plugin in plugins/.
To learn more about developing your project with Expo, look at the following resources:
The forest photo on the home screen is by Sebastian Unrau on Unsplash.