Node.js Webpack bundle enoint:没有此类文件或目录fs.readdirSync
我们希望创建在AWS Lambda上运行的微型应用程序。我们正在为此调查Webpack2。但是,我们有一个遗留代码,它使用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中,并在绑定期间解析文件名数组 在不对遗留
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中。添加后,您的捆绑包对我来说执行得很好。您是如何执行捆绑包的?您是一个实时保护程序,谢谢!