如何在节点模块中使__dirname引用生成Webpack捆绑包的目录?

时间:2019-06-24 10:40:09

标签: node.js webpack

我正在学习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时,对__dirnamedataInterface.js的引用为src,因此path.join(__dirname, '../.data/');确实解析到根文件夹中的.data目录。

但是我想让__dirname引用dist,这是分发包所在的位置。在那种情况下,最终我想将.data放在dist中。

这有可能吗?在概念上我想念什么?

0 个答案:

没有答案