if (release != 'rtm') { version += "-$release" } if(!npmName) npmName = name; ext.packageName="$npmScope/$npmName"; def packageDir = "$buildDir/dist" def distDir = "$packageDir/$platform" def testDir = "$packageDir/$platform" task printVersion { println "version: $version" println "packageName: $packageName" println "platform: $platform" } task clean { doLast { delete buildDir delete "node_modules/$packageName" } } task cleanNpm { doLast { delete 'node_modules' } } task _npmInstall() { inputs.file("package.json") outputs.dir("node_modules") doLast { exec { commandLine 'npm', 'install' } } } task _legacyJs(type:Copy) { from 'src/js/' into distDir } task _buildTs(dependsOn: _npmInstall, type:Exec) { inputs.dir('src/ts') inputs.file('tsconfig.json') outputs.dir(distDir) commandLine 'node_modules/.bin/tsc', '-p', 'src/tsconfig.json', '--outDir', distDir } task _packageMeta(type: Copy) { inputs.property("version", version) from('.') { include 'package.json', '.npmignore', 'readme.md', 'license', 'history.md' } into distDir doLast { exec { workingDir distDir commandLine 'npm', 'version', version } } } task build(dependsOn: [_legacyJs, _npmInstall, _buildTs, _packageMeta]) { } task _localInstall(dependsOn: build, type: Exec) { inputs.file("$distDir/package.json") outputs.upToDateWhen { new File("$projectDir/node_modules/$packageName").exists() } commandLine 'npm', 'install', '--no-save', '--force', distDir } task copyJsTests(type: Copy) { from 'test/js' into testDir } task buildTests(dependsOn: _localInstall, type: Exec) { inputs.dir('test/ts') inputs.file('test/tsconfig.json') outputs.dir(testDir) commandLine 'node_modules/.bin/tsc', '-p', 'test/tsconfig.json', '--outDir', distDir } task test(dependsOn: [copyJsTests, buildTests], type: Exec) { commandLine 'node', 'run-amd-tests.js' } task pack(dependsOn: build, type: Exec) { workingDir = distDir commandLine 'npm', 'pack' }