# HG changeset patch # User cin # Date 2019-02-04 09:30:44 # Node ID a58e38dc6b10eb4858b66b5f3f7a0712c16fac3b # Parent fb1f84f918951028cf87d7463aab506f136e248a added 'publish' task to the build script diff --git a/.vscode/settings.json b/.vscode/settings.json --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,5 +11,6 @@ "**/.git/subtree-cache/**": true, "**/node_modules/**": true, "/build": true - } + }, + "editor.minimap.enabled": false } \ No newline at end of file diff --git a/build.gradle b/build.gradle --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ def targetLibs = [ "es5" : "es5,es2015.promise,es2015.symbol,dom,scripthost" ]; -ext.packageName="$npmScope/$npmName"; +ext.packageName="@$npmScope/$npmName"; def srcDir = "$projectDir/src" def typingsDir = "$srcDir/typings" @@ -123,6 +123,7 @@ task printVersion { doLast { println "version: $version" println "packageName: $packageName" + println "bundle: ${pack.outputs.files.join(',')}" println "target: $target" println "module: $jsmodule" } @@ -242,6 +243,13 @@ task _packageMeta(type: Copy) { task pack(dependsOn: [build, _packageMeta], type: Exec) { workingDir distDir + outputs.file("$npmScope-$npmName-${version}.tgz") commandLine 'npm', 'pack' +} + +task publish(dependsOn: [build, _packageMeta], type: Exec) { + workingDir distDir + + commandLine 'npm', 'publish', '--access', 'public' } \ No newline at end of file diff --git a/build.md b/build.md new file mode 100644 --- /dev/null +++ b/build.md @@ -0,0 +1,68 @@ +# BUILD + +Для сборки необходимо иметь + +* nodejs >= 8 +* npm +* eslint +* mercurial (для автоматического определения версии) + +В пцессе сборки будут установлены зависимости из package.json + +## Properties + +Свойства, испольуземые для управления сборкой, через них можно указать имя, +версию пакета, тип модулей, версию стандарта js для которого осуществляется +сборка. Значения по-умолчанию заданы в `gradle.properties` + +### npmName + +`default: core` + +Имя пакета в терминологии npm. + +### npmScope + +`default: @implab` + +Пространство в терминологии npm для пакета. + +### target + +`default: es5` + +Версии стандарта js в среде выполнения, возможные значения: + +* es3 - требует полифилы для es5, promise +* es5 - требует полифил для promise +* es6 +* es2015 +* es2016 +* es2017 + +### jsmodule + +`default: amd` + +* amd - requirejs модули, хорошо подходит для использования в браузерах. +* commonjs - формат модулей для nodejs + +## Tasks + +### build + +### test + +### pack + +### publish + +## Examples + +```shell +./gradlew test pack -PnpmName=core-amd +``` + +```shell +./gradlew test pack -Pjsmodule=commonjs -Ptarget=es2017 +``` \ No newline at end of file diff --git a/gradle.properties b/gradle.properties --- a/gradle.properties +++ b/gradle.properties @@ -5,5 +5,5 @@ target=es5 description=Dependency injection, logging, simple and fast text template engine license=BSD-2-Clause repository=https://bitbucket.org/implab/implabjs-core -npmScope=@implab +npmScope=implab npmName=core \ No newline at end of file diff --git a/package-lock.json b/package-lock.json --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,7 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, @@ -144,7 +144,7 @@ "dependencies": { "tape": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/tape/-/tape-2.3.3.tgz", "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=", "dev": true, "requires": { @@ -277,7 +277,7 @@ }, "minimist": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=", "dev": true }, @@ -316,7 +316,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { @@ -369,7 +369,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, @@ -432,7 +432,7 @@ }, "through2": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "resolved": "http://registry.npmjs.org/through2/-/through2-0.2.3.tgz", "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", "dev": true, "requires": {