【发布时间】:2017-12-21 14:04:09
【问题描述】:
我希望以指向 Kotlin 生成的 JavaScript 文件的方式配置自动生成的 package.json。这是我当前的 gradle 配置:
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
}
}
这会输出一个位于 $project.builDir.path/classes/nain 中的 myProject.js 文件,我希望这会反映在生成的 package.json 文件中。但是输出的package.json文件(位于项目的build目录下)是这样的:
{
"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”属性没有指向位于 classes/main/myProject.js 中的包文件。我尝试查看文档以查找如何将 main 属性设置为特定目录和 js 文件,但找不到它。我只能通过在 gradle 文件的 webpackBundle 部分设置 bundleName 属性来更改名称。提前感谢您的帮助!
【问题讨论】:
-
我尝试在 gradle 文件中设置 compileKotlin2Js 如下: compileKotlin2Js { kotlinOptions.metaInfo = true kotlinOptions.sourceMap = true kotlinOptions.moduleKind = 'commonjs' kotlinOptions.outputFile = "$project.buildDir .path/${project.name}.js" } 但它会导致错误:无效的配置对象。 Webpack 已使用与 API 模式不匹配的配置对象进行初始化。 -configuration.resolve.modules[0] 不能为空