Как установить конфигурации package.json с помощью kotlin-frontend-plugin

Я хочу, чтобы автоматически сгенерированный файл package.json был настроен таким образом, чтобы он указывал на созданный Kotlin файл JavaScript. Это моя текущая конфигурация градиента:

apply plugin: 'kotlin-platform-js' apply from: "$project.rootDir/gradle/deploy.gradle" dependencies { expectedBy project(":") // Compile/implementation dependencies implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version" } apply plugin: 'org.jetbrains.kotlin.frontend' compileKotlin2Js { kotlinOptions.metaInfo = true kotlinOptions.sourceMap = true kotlinOptions.moduleKind = 'commonjs' } kotlinFrontend { sourceMaps = true npm { dependency("kotlin") replaceVersion("kotlin-js-library", "1.1.0") } define "PRODUCTION", true webpackBundle { bundleName = "${project.name}" sourceMapEnabled = true } } 

Это выводит файл myProject.js, расположенный в файле $ project.builDir.path / classes / nain, который, как я надеялся, будет отражен в сгенерированном файле package.json. Но полученный файл package.json (расположенный в каталоге сборки проекта) выглядит следующим образом:

 { "name": "myProject", "version": "1.2.0-10-SNAPSHOT", "description": "simple description", "main": "myProject", "dependencies": { "kotlin": "*" }, "devDependencies": { "webpack": "*", "webpack-dev-server": "*", "source-map-loader": "*", "karma": "*", "qunitjs": "1.23.1", "karma-qunit": "*", "karma-sourcemap-loader": "*", "karma-phantomjs-launcher": "*", "phantomjs-prebuilt": "*", "karma-webpack": "*" } } 

Проблема в том, что «основной» атрибут в package.json не указывает на файл пакета, расположенный в классах / main / myProject.js. Я попытался просмотреть документацию, чтобы узнать, как установить основной атрибут в конкретный каталог и файл js, но не смог найти его. Я могу изменить имя, установив свойство bundleName в части webpackBundle файла gradle. Спасибо за помощь в продвижении!

    Поэтому я нашел работу, чтобы иметь возможность использовать gradle для публикации в npm. Я добавил следующий код в мой код:

     apply plugin: "com.moowork.node" //Must copy the output javascript file //to the location that the package.json expects it to be //This is semi-workaround since I have not found a way to //configure the outputted package.json file task copyJSFile(type: Copy){ from "$project.buildDir.path/classes/main/" into "${project.buildDir}" include "*.js" } //We publish our project to npm task npmPublish(dependsOn: copyJSFile, type: NpmTask) { description = "publishes the project to npm" workingDir = file("${project.buildDir}") args = ['publish'] } 

    То, что это делает, – скопировать выпущенные файлы JavaScript, сгенерированные в место, где package.json настроен, когда вы вызываете задачу npmPublish gradle.

    Intereting Posts
    Параллелизм в Котлине Как функции хранения в статической коллекции будут влиять на систему? Применение преобразования к каждому элементу в Single <List <T >> Объекты Companion – Android хочет зарегистрировать их как действия (?) что эквивалентно этому java-коду kotlin Я хочу показать DialogFragment в Android с помощью Kotlin Проблема с компиляцией Dagger2 в Котлине Прикрепление, чтобы заменить вектор, который можно вырезать с помощью изображения с камеры, и растягиваемый растягивается за изображение? Функция расширения не создает новый объект Observable Что именно создает Regex с помощью Regex.fromLiteral ()? Ошибка связанного обслуживания с помощью «Context.startForegroundService () не вызвала ошибку Service.startForeground ()» Только первый тест проходит с TestScheduler при запуске нескольких тестов (Kotlin) Раздвижное окно RxJava Как использовать volatile на Kotlin Как отфильтровать значение от arraylist в Kotlin