在 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 startyarn run pre-packager命令yarn start调用pre-packager时才会运行预打包器

以上是关于在 react-native 中运行脚本预构建的主要内容,如果未能解决你的问题,请参考以下文章

预构建脚本路径和预构建脚本参数

如何使用 Visual Studio Code 为 cmake 添加预构建步骤?

react-native bundle 脚本在 typescript 模块 react-navigation 上抛出语法错误

基于环境变量更新 config.json 的预构建脚本

计划和构建预操作脚本输出? [复制]

Visual Studio 2003 预构建脚本找不到“svn”命令