在react-native中运行脚本预构建

dx_*_*_dt 6 android ios react-native

我有一些资源文件,我需要复制/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/'
}
Run Code Online (Sandbox Code Playgroud)

/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>
Run Code Online (Sandbox Code Playgroud)

但它似乎没有做任何事情.我的猜测是我需要在某处添加第三个引用,但我无法弄清楚在哪里.

Oli*_*ier 3

这可以在项目根目录的 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"
}
Run Code Online (Sandbox Code Playgroud)