Не видит вложенные обьекты nodeJs?

Почему выдает ошибку undefined? Всем доброго времени суток, столкнулся с проблемой при написании сборки на gulp.js, пишу сборку не в одном файле, а модульно поэтому возникла проблема при разрешении путей либо не правильно экспортирую/импортирую объекты, хотел бы узнанть почему когда в консоль пишу paths то выводит сам объект и вложенные в него объекты. а когда пытаюсь достучаться до вложенного объекта выдает undefined. Структура проекта такая введите сюда описание изображения

То есть если вывожу объект paths то видно что в нем лежат вложенные объекты введите сюда описание изображения

Но если пытаюсь получить paths.styles.src либо просто paths.src то выдает undefined of src введите сюда описание изображения

Код таска Styles.js

const {dest, src} = require('../node_modules/gulp');

const {preprocessor} = require('./helpers/VariableHelper');
const paths = require('./helpers/PathsHelper');

const sass         = require('gulp-sass');
const scss         = require('gulp-sass');
const less         = require('gulp-less');
const stylus       = require('gulp-stylus');
const cleancss     = require('gulp-clean-css');
const concat       = require('gulp-concat');
const browserSync  = require('browser-sync').create();
const autoprefixer = require('gulp-autoprefixer');
        
console.log(paths.src);

function styles() {
  return src(paths.styles.src)
  .pipe(sass())
  .pipe(autoprefixer({ overrideBrowserslist: ['last 10 versions'], grid: true }))
  .pipe(cleancss( {level: { 1: { specialComments: 0 } },/* format: 'beautify' */ }))
  .pipe(dest('./dist'))
  .pipe(browserSync.stream())
}

exports.styles = styles;

Код VariableHelper.js

const path = require('path');
let baseDir  = path.resolve('./src') // If you wanna change you main dev directory, just replace src on another name
preprocessor = 'sass', // If you work with less or scss, just change 'sass' on 'less' for example.
fileswatch   = 'html,htm,txt,json,md,woff2', // List of files extensions for watching & hard reload (comma separated)
imageswatch  = 'jpg,jpeg,png,webp,svg'; // List of images extensions for watching & compression (comma separated)

exports.baseDir      = baseDir;
exports.preprocessor = preprocessor;
exports.fileswatch   = fileswatch;
exports.imageswatch  = imageswatch;

Код PathsHelper.js

let {baseDir, preprocessor} = require('./VariableHelper.js');

let paths = {

  scripts: {
    src: [
      // 'node_modules/jquery/dist/jquery.min.js', // npm vendor example (npm i --save-dev jquery)
      baseDir + '/js/app.js' // app.js. Always at the end
    ],
    dest: baseDir + '/js',
  },

  styles: {
    src:  baseDir + '/' + preprocessor + '/test.sass', // ./src/sass/test.*
    dest: baseDir + '/css',
  },

  images: {
    src:  baseDir + '/images/src/**/*',
    dest: baseDir + '/images/dest',
  },

  deploy: {
    hostname:    '[email protected]', // Deploy hostname
    destination: 'yousite/public_html/', // Deploy destination
    include:     [/* '*.htaccess' */], // Included files to deploy
    exclude:     [ '**/Thumbs.db', '**/*.DS_Store' ], // Excluded files from deploy
  },

  cssOutputName: 'app.min.css',
  jsOutputName:  'app.min.js',

}

console.log(paths.styles.src);

exports.paths = paths;

Если в таске пишу return src хардкодом то все работает.

function styles() {
  return src('.src/sass/test.sass')
  .pipe(sass())
  .pipe(autoprefixer({ overrideBrowserslist: ['last 10 versions'], grid: true }))
  .pipe(cleancss( {level: { 1: { specialComments: 0 } },/* format: 'beautify' */ }))
  .pipe(dest('./dist'))
  .pipe(browserSync.stream())
}

Подскажите пожалуйста почему не может прочитать значение с paths.src и как пофиксить чтобы заработало? Уже два часа пытаюсь понять что не так написал уже и path.resolve подключил и через path.dirname пробовал ничего не выходит, из догадок только то что как-то не так экспортирую сам объект...


Ответы (0 шт):