Как сделать задачу компиляции gradle-приложения зависит от задачи npmInstall? - PullRequest
0 голосов
/ 26 октября 2019

Я использую этот плагин gradle node в моем проекте Android, чтобы просто установить все зависимости в папке package.json в node_modules. npmInstall задача gradle справляется с этим, и я хотел бы запускать эту задачу всякий раз, когда перестраиваю свой проект Android. Поскольку npmInstall является задачей проекта корневого уровня, я написал ниже код для моей задачи gradle уровня приложения, которая будет зависеть от задачи npmInstall:

afterEvaluate {
    android.productFlavors.all {
        flavor ->
            android.applicationVariants.all { variant ->
                tasks.findByName("compile${flavor.name.capitalize()}${variant.buildType.name.capitalize()}Kotlin").dependsOn tasks.findByName('npmInstall')
            }
    }
}

Это сделает мою задачу compileFreeDebugKotlin gradle уровня приложениязависеть от задачи npmInstall, и когда я перестраиваю проект, я вижу, что папка node_modules создана и установлены зависимости. Тем не менее, он не компилируется, я получил исключение ниже:

e: /.../BaseRNActivity.kt: (10, 34): Unresolved reference: LifecycleState
e: /.../BaseRNActivity.kt: (41, 29): Unresolved reference: setJSMainModulePath
e: /.../BaseRNActivity.kt: (53, 48): Unresolved reference: addPackages
e: /.../BaseRNActivity.kt: (59, 39): Unresolved reference: LifecycleState
e: /.../BaseRNActivity.kt: (80, 31): Unresolved reference: onHostPause
e: /.../BaseRNActivity.kt: (85, 31): Unresolved reference: onHostResume
e: /.../BaseRNActivity.kt: (89, 24): Unresolved reference: unmountReactApplication
e: /.../BaseRNActivity.kt: (91, 31): Unresolved reference: onHostDestroy

Интересно, что если у меня есть эта папка node_modules до того, как я пересоберу проект, то все в порядке.

Я думаю, проблема в том, что любая задача-грейдер на уровне приложения не ждет загрузки зависимостей. Как я могу заставить свою любую задачу на уровне приложения ждать результата npmInstall? Заранее спасибо.

...