Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Webpack bundle enoint:没有此类文件或目录fs.readdirSync_Node.js_Webpack_Webpack 2 - Fatal编程技术网

Node.js Webpack bundle enoint:没有此类文件或目录fs.readdirSync

Node.js Webpack bundle enoint:没有此类文件或目录fs.readdirSync,node.js,webpack,webpack-2,Node.js,Webpack,Webpack 2,我们希望创建在AWS Lambda上运行的微型应用程序。我们正在为此调查Webpack2。但是,我们有一个遗留代码,它使用fs.readdirSync获取文件/模块名称列表,以生成模块列表。执行捆绑包时,我们得到一个错误error:enoint:没有这样的文件或目录,scandir'/innerLib',因为webpack不知道执行fs.readdirSync(path.resolve(u dirname,'innerLib')在文件lib/lib.js中,并在绑定期间解析文件名数组 在不对遗留

我们希望创建在AWS Lambda上运行的微型应用程序。我们正在为此调查Webpack2。但是,我们有一个遗留代码,它使用
fs.readdirSync
获取文件/模块名称列表,以生成模块列表。执行捆绑包时,我们得到一个错误
error:enoint:没有这样的文件或目录,scandir'/innerLib'
,因为webpack不知道执行
fs.readdirSync(path.resolve(u dirname,'innerLib')在文件
lib/lib.js
中,并在绑定期间解析文件名数组

在不对遗留代码进行重大更改的情况下,我们可以采用哪些方法处理wepback。我在下面和后面都有一个简单的例子

webpack.config.js

var path = require( 'path' );
var webpack = require( 'webpack' );

module.exports = {
  context: __dirname,
  entry: ['./index.js'],
  output: {
    filename: 'bundle.js',
  },
  target: 'node',
}
const  lib = require('./lib/lib.js');

lib.getModuleList((err, modules) => console.log(modules));
const fs = require('fs');
const path = require('path');
let moduleList = [];
let list = fs.readdirSync(path.resolve(__dirname, 'innerLib'));

exports.getModuleList = getModuleList;

function getModuleList(callback) {
  return callback(null, moduleList);
}

list.forEach(filename => {
  moduleList.push({
    name: filename
  });
});
console.log('a lib loaded');
console.log('b lib loaded');
index.js

var path = require( 'path' );
var webpack = require( 'webpack' );

module.exports = {
  context: __dirname,
  entry: ['./index.js'],
  output: {
    filename: 'bundle.js',
  },
  target: 'node',
}
const  lib = require('./lib/lib.js');

lib.getModuleList((err, modules) => console.log(modules));
const fs = require('fs');
const path = require('path');
let moduleList = [];
let list = fs.readdirSync(path.resolve(__dirname, 'innerLib'));

exports.getModuleList = getModuleList;

function getModuleList(callback) {
  return callback(null, moduleList);
}

list.forEach(filename => {
  moduleList.push({
    name: filename
  });
});
console.log('a lib loaded');
console.log('b lib loaded');
lib/lib.js

var path = require( 'path' );
var webpack = require( 'webpack' );

module.exports = {
  context: __dirname,
  entry: ['./index.js'],
  output: {
    filename: 'bundle.js',
  },
  target: 'node',
}
const  lib = require('./lib/lib.js');

lib.getModuleList((err, modules) => console.log(modules));
const fs = require('fs');
const path = require('path');
let moduleList = [];
let list = fs.readdirSync(path.resolve(__dirname, 'innerLib'));

exports.getModuleList = getModuleList;

function getModuleList(callback) {
  return callback(null, moduleList);
}

list.forEach(filename => {
  moduleList.push({
    name: filename
  });
});
console.log('a lib loaded');
console.log('b lib loaded');
lib/innerLib/a.js

var path = require( 'path' );
var webpack = require( 'webpack' );

module.exports = {
  context: __dirname,
  entry: ['./index.js'],
  output: {
    filename: 'bundle.js',
  },
  target: 'node',
}
const  lib = require('./lib/lib.js');

lib.getModuleList((err, modules) => console.log(modules));
const fs = require('fs');
const path = require('path');
let moduleList = [];
let list = fs.readdirSync(path.resolve(__dirname, 'innerLib'));

exports.getModuleList = getModuleList;

function getModuleList(callback) {
  return callback(null, moduleList);
}

list.forEach(filename => {
  moduleList.push({
    name: filename
  });
});
console.log('a lib loaded');
console.log('b lib loaded');
lib/innerLib/b.js

var path = require( 'path' );
var webpack = require( 'webpack' );

module.exports = {
  context: __dirname,
  entry: ['./index.js'],
  output: {
    filename: 'bundle.js',
  },
  target: 'node',
}
const  lib = require('./lib/lib.js');

lib.getModuleList((err, modules) => console.log(modules));
const fs = require('fs');
const path = require('path');
let moduleList = [];
let list = fs.readdirSync(path.resolve(__dirname, 'innerLib'));

exports.getModuleList = getModuleList;

function getModuleList(callback) {
  return callback(null, moduleList);
}

list.forEach(filename => {
  moduleList.push({
    name: filename
  });
});
console.log('a lib loaded');
console.log('b lib loaded');

您的问题是
\uu dirname
正在解析为
/
。要使其与webpack一起工作,请设置:

node: {
  __dirname: true
}

在您的webpack.config.js中。添加后,您的捆绑包对我来说执行得很好。

您是如何执行捆绑包的?您是一个实时保护程序,谢谢!