From e5eb0418d0d36f306a0798bedf5554ccefe796af Mon Sep 17 00:00:00 2001 From: Dimitar Tachev Date: Fri, 9 Feb 2018 18:34:59 +0200 Subject: [PATCH 1/2] fix: fix the relative paths in order to allow both tgz and npm link plugin usage. --- demo/app/App_Resources/Android/app.gradle | 2 +- demo/package.json | 7 +++++++ lib/converter.js | 8 ++++---- lib/importer.js | 4 ++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/demo/app/App_Resources/Android/app.gradle b/demo/app/App_Resources/Android/app.gradle index 6345b6a..c9d40ec 100644 --- a/demo/app/App_Resources/Android/app.gradle +++ b/demo/app/App_Resources/Android/app.gradle @@ -8,7 +8,7 @@ android { defaultConfig { generatedDensities = [] - applicationId = "__PACKAGE__" + applicationId = "org.nativescript.demo" } aaptOptions { additionalParameters "--no-version-vectors" diff --git a/demo/package.json b/demo/package.json index dbb804f..ef755a3 100644 --- a/demo/package.json +++ b/demo/package.json @@ -7,6 +7,9 @@ "id": "org.nativescript.demo", "tns-ios": { "version": "3.0.0" + }, + "tns-android": { + "version": "3.4.1" } }, "dependencies": { @@ -14,6 +17,10 @@ "tns-core-modules": "^3.0.0" }, "devDependencies": { + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lazy": "1.0.11", "nativescript-dev-sass": "file:.." } } diff --git a/lib/converter.js b/lib/converter.js index f1b1295..effd22d 100644 --- a/lib/converter.js +++ b/lib/converter.js @@ -9,9 +9,7 @@ var currentSassProcess = null; function convert(logger, projectDir, options) { return new Promise(function (resolve, reject) { options = options || {}; - - var peerSassPath = path.join(__dirname, '../../node-sass'); - var sassPath = path.join(peerSassPath, 'bin/node-sass'); + var sassPath = require.resolve('node-sass/bin/node-sass'); var appDir = path.join(projectDir, "app"); var importerPath = path.join(__dirname, "importer.js"); @@ -36,7 +34,9 @@ function convert(logger, projectDir, options) { } logger.trace(process.execPath, nodeArgs.join(' ')); - currentSassProcess = spawn(process.execPath, nodeArgs); + var env = Object.create( process.env ); + env.PROJECT_DIR = projectDir; + currentSassProcess = spawn(process.execPath, nodeArgs, { env: env }); var isResolved = false; var watchResolveTimeout; diff --git a/lib/importer.js b/lib/importer.js index ef941af..8073df7 100644 --- a/lib/importer.js +++ b/lib/importer.js @@ -3,10 +3,10 @@ var path = require("path"); module.exports = function(url, prev, done) { if (url[0] === '~' && url[1] !== '/') { // Resolve "~" paths to node_modules - url = path.resolve(__dirname, "../../../node_modules", url.substr(1)); + url = path.resolve(process.env.PROJECT_DIR, "node_modules", url.substr(1)); } else if (url[0] === '~' && url[1] === '/') { // Resolve "~/" paths to the app root - url = path.resolve(__dirname, "../../../app/"+ url.substr(2)); + url = path.resolve(process.env.PROJECT_DIR, "app/"+ url.substr(2)); } return { file: url }; From 9419ed7e1a5fda57c736c04cf9e803f3203470e0 Mon Sep 17 00:00:00 2001 From: Dimitar Tachev Date: Mon, 12 Feb 2018 11:35:48 +0200 Subject: [PATCH 2/2] chore: moved the plugin source to src folder. --- demo/package.json | 2 +- publish/pack.sh | 47 ++++++++++++++++++++++++++ publish/package.json | 9 +++++ publish/publish.sh | 11 ++++++ {lib => src/lib}/after-prepare.js | 0 {lib => src/lib}/after-watch.js | 0 {lib => src/lib}/before-prepare.js | 0 {lib => src/lib}/converter.js | 0 {lib => src/lib}/importer.js | 0 {lib => src/lib}/watch.js | 0 package.json => src/package.json | 0 postinstall.js => src/postinstall.js | 0 preuninstall.js => src/preuninstall.js | 0 13 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 publish/pack.sh create mode 100644 publish/package.json create mode 100644 publish/publish.sh rename {lib => src/lib}/after-prepare.js (100%) rename {lib => src/lib}/after-watch.js (100%) rename {lib => src/lib}/before-prepare.js (100%) rename {lib => src/lib}/converter.js (100%) rename {lib => src/lib}/importer.js (100%) rename {lib => src/lib}/watch.js (100%) rename package.json => src/package.json (100%) rename postinstall.js => src/postinstall.js (100%) rename preuninstall.js => src/preuninstall.js (100%) diff --git a/demo/package.json b/demo/package.json index ef755a3..2ee9e6b 100644 --- a/demo/package.json +++ b/demo/package.json @@ -21,6 +21,6 @@ "babel-types": "6.26.0", "babylon": "6.18.0", "lazy": "1.0.11", - "nativescript-dev-sass": "file:.." + "nativescript-dev-sass": "file:../src" } } diff --git a/publish/pack.sh b/publish/pack.sh new file mode 100644 index 0000000..212f22f --- /dev/null +++ b/publish/pack.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +SOURCE_DIR=../src; +TO_SOURCE_DIR=src; +PACK_DIR=package; +ROOT_DIR=..; +PUBLISH=--publish + +install(){ + npm i +} + +pack() { + + echo 'Clearing /src and /package...' + node_modules/.bin/rimraf "$TO_SOURCE_DIR" + node_modules/.bin/rimraf "$PACK_DIR" + + # copy src + echo 'Copying src...' + node_modules/.bin/ncp "$SOURCE_DIR" "$TO_SOURCE_DIR" + + # copy README & LICENSE to src + echo 'Copying README and LICENSE to /src...' + node_modules/.bin/ncp "$ROOT_DIR"/LICENSE "$TO_SOURCE_DIR"/LICENSE + node_modules/.bin/ncp "$ROOT_DIR"/README.md "$TO_SOURCE_DIR"/README.md + + # compile package and copy files required by npm + echo 'Building /src...' + cd "$TO_SOURCE_DIR" + node_modules/.bin/tsc + cd .. + + echo 'Creating package...' + # create package dir + mkdir "$PACK_DIR" + + # create the package + cd "$PACK_DIR" + npm pack ../"$TO_SOURCE_DIR" + + # delete source directory used to create the package + cd .. + node_modules/.bin/rimraf "$TO_SOURCE_DIR" +} + +install && pack \ No newline at end of file diff --git a/publish/package.json b/publish/package.json new file mode 100644 index 0000000..b84f136 --- /dev/null +++ b/publish/package.json @@ -0,0 +1,9 @@ +{ + "name": "nativescript-publish", + "version": "1.0.0", + "description": "Publish helper", + "devDependencies": { + "ncp": "^2.0.0", + "rimraf": "^2.5.0" + } + } \ No newline at end of file diff --git a/publish/publish.sh b/publish/publish.sh new file mode 100644 index 0000000..8e72704 --- /dev/null +++ b/publish/publish.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +PACK_DIR=package; + +publish() { + cd $PACK_DIR + echo 'Publishing to npm...' + npm publish *.tgz +} + +./pack.sh && publish \ No newline at end of file diff --git a/lib/after-prepare.js b/src/lib/after-prepare.js similarity index 100% rename from lib/after-prepare.js rename to src/lib/after-prepare.js diff --git a/lib/after-watch.js b/src/lib/after-watch.js similarity index 100% rename from lib/after-watch.js rename to src/lib/after-watch.js diff --git a/lib/before-prepare.js b/src/lib/before-prepare.js similarity index 100% rename from lib/before-prepare.js rename to src/lib/before-prepare.js diff --git a/lib/converter.js b/src/lib/converter.js similarity index 100% rename from lib/converter.js rename to src/lib/converter.js diff --git a/lib/importer.js b/src/lib/importer.js similarity index 100% rename from lib/importer.js rename to src/lib/importer.js diff --git a/lib/watch.js b/src/lib/watch.js similarity index 100% rename from lib/watch.js rename to src/lib/watch.js diff --git a/package.json b/src/package.json similarity index 100% rename from package.json rename to src/package.json diff --git a/postinstall.js b/src/postinstall.js similarity index 100% rename from postinstall.js rename to src/postinstall.js diff --git a/preuninstall.js b/src/preuninstall.js similarity index 100% rename from preuninstall.js rename to src/preuninstall.js