我遇到了一个问题,似乎是由于我对 webpack 缺乏了解。我创建了一个如下所示的文件结构:
|-serverless-cloud-functions
||-my-local-libs
|||-twilioClient
||-service1
||-service2
twilioClient 是我制作的一个库,需要包含在 service1 和 service2 中。由于无服务器框架的限制,您不能在服务之外捆绑文件,所以唯一的选择(我认为)是使用npm install ../my-local-libs/twilioClient
来自服务文件夹内部的。这适用于安装模块,但现在它驻留在 node_modules 中。目前,我也在使用 webpack 和 babel。
我相信我的根本问题是我的 webpack 配置如下所示:
const slsw = require("serverless-webpack");
const nodeExternals = require("webpack-node-externals");
module.exports = {
entry: slsw.lib.entries,
target: "node",
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.js$/,
loader: "babel-loader",
exclude: /node_modules/
}
]
}
};
其中不包括我的 es6 twilioClient
lib,因为它在node_modules
文件夹中。
我看到一些人建议这是完成“排除节点模块中的所有内容twilioClient
”的方法:
module.exports = {
entry: slsw.lib.entries,
target: "node",
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.js$/,
loader: "babel-loader",
exclude: /node_modules\/(?!(twilioClient))/
}
]
}
};
但这在我的情况下不起作用。任何帮助是极大的赞赏。