首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由于webpack,NPM包出现错误

由于webpack,NPM包出现错误
EN

Stack Overflow用户
提问于 2019-06-18 10:49:17
回答 1查看 852关注 0票数 0

我已经创建了一个Netlify站点,它运行一个create-react-app项目并使用Netlify的lambda函数特性。然而,当我尝试使用诸如mysql或mysql2之类的包时,我得到了webpack错误。这些都记录在每个库的github问题上,但我无法访问webpack的配置来添加“快速修复”。我不能想象我是唯一遇到这个问题的人,但是我有什么选择呢?

有没有办法防止webpack接触我的服务器端软件包?这是因为Netlify在同一根目录中存储客户端和服务器端代码的方式吗?

在过去的几天里,我几乎用尽了我能想到的每一种选择。任何建议或见解都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-06-19 08:50:23

因此,部署Netlify的lambda函数的方法不止一种。请记住,lambda函数只是导出处理程序的节点模块。在构建之后,Netlify将使用build in netlify.toml下的functions值来获取要为您的函数部署的目录。

创建这些函数的常用方法

从terminal.

  • During CI/CD使用Netlify Cli (netlify-cli)
  • ,使用Netlify cli将函数从源位置捆绑到build.functions下的netlify.toml中指定的文件夹。这使您可以使用针对现代Javascript.
  • Don't预处理的基本webpack/巴别塔设置为部署它们做好准备,但只需将您的函数直接放入build.functions.

netlify.toml中指定的目录

在这种情况下,最后一个选项可能是您想要使用的。

使用最后一个选项设置要部署的函数

netlify.toml

[build]
  functions = "functions"

/functions/somefunction/somefunction.js

var mysql = require('mysql');
.
.
exports.handler = (event, context) => {
 .
 .
}
.

创建包含所需依赖项的/functions/somefunction/package.json文件。在这种情况下,您将使用mysql,以及函数中需要的任何其他函数。还应该使用package-lock.json文件锁定您想要的版本。

在根package.json中,为cd ./functions/somefunction && npm install设置预处理脚本命令,以便在执行任何构建命令之前安装依赖项。这将把依赖项捆绑到/functions/somefunction/node_modules中,并准备好与somefunction函数一起部署netlify。预处理命令将允许您将node_modules留在git存储库之外。

使用上述方法的Here is an example of a create-react-app with netlify functions,其中函数不是使用webpack或netlify-lambda绑定的,但具有在部署之前的构建过程中预安装的依赖项。此示例使用joke-async函数的子目录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56641157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档