在 react-native 中运行脚本预构建
Posted
技术标签:
【中文标题】在 react-native 中运行脚本预构建【英文标题】:Running a script pre-build in react-native 【发布时间】:2017-03-30 17:04:43 【问题描述】:我有一些资源文件需要在构建时从/app/resources
复制到/android/app/src/main/ress/raw
和/ios/<project>/resources
。我认为有办法做到这一点,但我不熟悉 react-native
/Gradle/XCode 的构建方式。
对于 gradle,我尝试添加到 /android/app/build.gradle
task copySounds(type: Copy)
from '../../app/resources/sounds/*'
into 'src/main/res/raw/'
和/android/.idea/workspace.xml
<project version="4">
// ...
<component name="GradleLocalSettings">
// ...
<option name="availableTasks">
<map>
<entry>
// ...
<value>
<list>
// ...
<ExternalTaskPojo>
<option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
<option name="name" value="copySounds" />
</ExternalTaskPojo>
// ...
</list>
</value>
</entry>
// ...
</map>
</option>
// ...
</component>
</project>
但它似乎没有做任何事情。我的猜测是我需要在某处添加第三个引用,但我不知道在哪里。
【问题讨论】:
【参考方案1】:这可以在项目根目录下 package.json 的脚本部分完成。
例如,在调用 React Native 打包程序执行构建之前,我在下面运行 ./scripts/script-to-run-before-RN-build.sh。
"scripts":
"start": "npm run pre-packager && node node_modules/react-native/local-cli/cli.js start",
"pre-packager": "./scripts/script-to-run-before-RN-build.sh"
【讨论】:
具体是如何工作的?在这两种情况下,我都尝试调用 react-native bundle/run-android,不会调用 pre-packager。 只有在调用yarn start
或yarn run pre-packager
命令yarn start
调用pre-packager
时才会运行预打包器以上是关于在 react-native 中运行脚本预构建的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio Code 为 cmake 添加预构建步骤?
react-native bundle 脚本在 typescript 模块 react-navigation 上抛出语法错误