【发布时间】:2018-07-23 21:46:51
【问题描述】:
我需要打包一个我用 webpack 编写的模块并用 babel 进行转译。但是我不想从node_modules 打包任何东西。此外,不应打包 Node.js 核心模块。
核心模块出现以下错误:
ERROR in ./node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'net' in '...project path...\node_modules\tunnel-agent'
@ ./node_modules/tunnel-agent/index.js 3:10-24
@ ./node_modules/request/lib/tunnel.js
@ ./node_modules/request/request.js
@ ./node_modules/request/index.js
很明显,webpack 正在爬取节点模块,这是我不想要的。它还明显地尝试加载像 net 和 fs 这样的模块。
如何阻止这种情况,只打包和转译我自己的代码?
我的配置:
const path = require('path');
module.exports = {
entry: './serverless_function.js',
output: {
path: path.resolve('dist'),
filename: 'serverless_packed.js'
},
module: {
loaders: [
{ test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ },
{ test: /\.jsx$/, loader: 'babel-loader', exclude: /node_modules/ }
]
}
}
我需要打包我的无服务器功能以与在 Amazon AWS 上运行的 Node.js 6 兼容。它看起来像这样:
const Library = require("./MyLibrary");
const fs = require("fs");
async function serverlessFunction(event, context, callback) {
const response = {
statusCode: 200,
headers: {
"Content-Type": "image/png",
"Content-Disposition": "inline; filename=\"something.png\""
},
body: await Library.createImage().asBase64String("param1", "param2"),
isBase64Encoded: true
};
return callback(null, response);
}
module.exports = { serverlessFunction };
【问题讨论】:
标签: node.js amazon-web-services npm webpack babeljs