【问题标题】:Serverless Error code 10021: Uncaught ReferenceError: require is not defined无服务器错误代码 10021:未捕获的 ReferenceError:未定义要求
【发布时间】:2019-03-06 22:03:28
【问题描述】:

我在尝试使用任何包部署模板 cloudflare worker 时遇到了一段时间。在过去的几个小时里,我一直在修补 webpack,但没有运气。如果没有 require 语句,部署它并调用函数可以正常工作。

index.js

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

const _ = require('lodash');

async function handleRequest(request) {
  return new Response("Hello world")
}

webpack.config.js

module.exports = {
  entry: './index.js',
  mode: 'development',
  devtool: 'cheap-module-source-map',
  optimization: { minimize: false },
  output: {
    path: __dirname + '/dist',
    publicPath: 'dist',
    filename: "main.js"
  },
  target: 'webworker',
};

运行这个命令似乎也可以工作

curl -X PUT "https://api.cloudflare.com/client/v4/zones/:zoneId/workers/script" -H "X-Auth-Email:CLOUDFLARE_AUTH_EMAIL" -H​​ "X-Auth-Key:CLOUDFLARE_API_KEY" -H "Content-Type:application/javascript" --data-binary "@./dist/main.js"

结果是一大块文本,后面跟着:

"success": true,
"errors": [],
"messages": []

我不知道为什么我似乎不需要任何库,有人可以赐教吗?

忘了说也可以用 lodash 调用函数。

【问题讨论】:

  • 你的 webpack 和部署怎么样?这是无服务器的吗?你的 serverless.yml 是什么样的?

标签: node.js webpack cloudflare serverless-framework cloudflare-workers


【解决方案1】:

在开头添加

 target: 'webworker',

删除这两行

devtool: 'cheap-module-source-map',
optimization: { minimize: false },

并在生产模式下运行

【讨论】:

  • 请提供解释。
  • CF 工作人员只需要一个文件。所以不需要地图文件。
猜你喜欢
  • 2020-07-13
  • 2018-01-25
  • 2022-06-15
  • 2021-07-12
  • 2020-05-16
  • 2012-12-16
  • 2017-02-28
  • 2017-06-01
相关资源
最近更新 更多