Как сделать так, чтобы __dirname в модуле узла ссылалось на каталог, в котором создан пакет веб-пакета? - PullRequest
0 голосов
/ 24 июня 2019

Я изучаю Node.

У меня есть модуль, который я использую для чтения и записи файлов в каталог, на который я ссылаюсь в моем модуле dataInterface.js как:

const dataInterface = {} as DataInterface;

dataInterface.baseDir = path.join(__dirname, '../.data/');

Моя структура каталогов и файлов:

/app
  /.data
  /dist
  /src
    dataInterface.js
  index.js

Я использую webpack с точкой входа index.js (которая импортирует dataInterface.js), а расположение вывода пакета app/dist/index.js.

Мой webpack.config.js является

module.exports = {
{
    entry: './index.ts',
    watch: true,
    target: 'node',
    output: {
      path: path.resolve(__dirname, 'dist'),
      filename: 'index.js',
    },
    module: {
      rules: [
        { test: /\.tsx?$/, loader: 'ts-loader' },
        {
          test: /\.js?$/,
          exclude: /(node_modules|build)/,
          use: [{ loader: 'babel-loader' }],
        },
      ],
    },
    resolve: {
      extensions: ['.ts', '.tsx', '.js'],
    },
    node: {
      __dirname: true,
    },
  };
}

Важна деталь

    node: {
      __dirname: true,
    },

.Когда установлено значение true, ссылка на __dirname в dataInterface.js равна src, поэтому path.join(__dirname, '../.data/'); действительно разрешает каталог .data в корневой папке.

Но я хочу только для __dirname для обозначения dist, где находится пакет.В этом случае, в конечном счете, я хочу поместить .data в dist.

Возможно ли это и чего я здесь упускаю в концептуальном плане?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...