Получите родительский пакет. json и назовите папку так же минус любое регулярное выражение - PullRequest
0 голосов
/ 26 февраля 2020

Я использую gulp и ищу родительскую папку в пакете. json и создаю папку в моем каталоге $ HOME на основе имени без пробелов и специальных символов.

Мой пакет. json скрипты работают, но я в настоящее время добавляю имена вручную, см. Ниже:

{
  "name": "StarterProject",
  "version": "1.0.0",
  "description": "Starter Project",
  "main": "index.html",
  "scripts": {
    "start": "run-s postinstall gulp",
    "postinstall": "cd $HOME/Sites && mkdirp abtaxis && cd $HOME/Sites/abtaxis && valet secure",
    "gulp": "gulp"
  },
  "author": "test",
  "license": "ISC",
  "devDependencies": {
    "npm-run-all": "^4.1.5",
    "ttab": "^0.6.1",
    "gulp": "^4.0.2",
    "browser-sync": "^2.26.7",
    "del": "^5.1.0",
    "gulp-sass": "^4.0.2",
    "gulp-autoprefixer": "^7.0.1",
    "gulp-clean-css": "4.2.0",
    "cssnano": "^4.1.10",
    "gulp-concat": "^2.6.1",
    "gulp-embed-svg": "^1.2.0",
    "gulp-htmlmin": "^5.0.1",
    "gulp-imagemin": "^7.1.0",
    "gulp-plumber": "^1.2.1",
    "gulp-rename": "^2.0.0",
    "gulp-sourcemaps": "^2.6.5",
    "gulp-uglify": "^3.0.2",
    "watch": "^1.0.2",
    "gulp-postcss": "^8.0.0",
    "gulp-file-include": "^2.1.1",
    "mkdirp": "^1.0.3",
    "gulp-replace": "^1.0.0"
  },
  "dependencies": {
    "chai": "^4.2.0",
    "node-sass": "^4.13.1"
  }
}

Я использую gulp и ищу получить родительскую папку в пакете. json и создайте папку в моем каталоге $ HOME на основе имени без пробелов и специальных символов.

Мой пакет. json скрипты работают, но я в настоящее время добавляю имена вручную, см. ниже:

{
  "name": "StarterProject",
  "version": "1.0.0",
  "description": "Starter Project",
  "main": "index.html",
  "scripts": {
    "start": "run-s postinstall gulp",
    "postinstall": "cd $HOME/Sites && mkdirp abtaxis && cd $HOME/Sites/abtaxis && valet secure",
    "gulp": "gulp"
  },
  "author": "test",
  "license": "ISC",
  "devDependencies": {
    "npm-run-all": "^4.1.5",
    "ttab": "^0.6.1",
    "gulp": "^4.0.2",
    "browser-sync": "^2.26.7",
    "del": "^5.1.0",
    "gulp-sass": "^4.0.2",
    "gulp-autoprefixer": "^7.0.1",
    "gulp-clean-css": "4.2.0",
    "cssnano": "^4.1.10",
    "gulp-concat": "^2.6.1",
    "gulp-embed-svg": "^1.2.0",
    "gulp-htmlmin": "^5.0.1",
    "gulp-imagemin": "^7.1.0",
    "gulp-plumber": "^1.2.1",
    "gulp-rename": "^2.0.0",
    "gulp-sourcemaps": "^2.6.5",
    "gulp-uglify": "^3.0.2",
    "watch": "^1.0.2",
    "gulp-postcss": "^8.0.0",
    "gulp-file-include": "^2.1.1",
    "mkdirp": "^1.0.3",
    "gulp-replace": "^1.0.0"
  },
  "dependencies": {
    "chai": "^4.2.0",
    "node-sass": "^4.13.1"
  }
}

Мой файл gulpfile. js вместе со всеми моими другими исходными файлами находится по следующему адресу:

cd $HOME/Documents/Clients/"A&B TAXIS"/Projects/Website/5-Website

В основном, я хотел бы получить название 'A & B Taxis 'и измените его на' abtaxis ', затем создайте папку из этого.

У меня есть скрипт, который делает это, который находится в файле gulpfile. js, но я не могу понять, как заставить его работать в упаковке. json. Как я упоминал ранее, я вручную добавляю 'abtaxis' в пакет. json файл, который не идеален.

Вот мой сценарий:

const homedir = require("os").homedir();
var path = require("path");
var pathDir = require("path").resolve(__dirname, "../../");
var parentDir = path
  .dirname(pathDir)
  .split(path.sep)
  .pop();

var newParent = parentDir.split(" ").join("_");

var parentdir = path.basename(path.dirname(pathDir));
parentdir = parentDir.replace(/[^\w]/g, "");
parentdir = parentDir.replace(/[^\w]/g, "").toLowerCase();

Вот как я использую переменную parentdir:

browserSync.init({
    proxy: "https://" + parentdir + ".test",
    host: parentdir + ".test",
    open: "external",
    https: {
      key: homedir + "/.config/valet/Certificates/" + parentdir + ".test.key",
      cert: homedir + "/.config/valet/Certificates/" + parentdir + ".test.crt"
    },
    browser: "Google Chrome Canary",
    notify: false
  });

Возможно ли это? Я не могу понять, как.

...