首页 > 解决方案 > 当外部模块使用 Array.isArray() 时,无服务器失败并显示“您可能需要适当的加载程序来处理此文件类型”

问题描述

当我运行时sls deploy,我收到以下错误

Serverless: Bundling with Webpack...

ERROR in /Users/pgonzalez/myapps/happy-soup-bulk-service/node_modules/sfdc-happy-api/lib/rest.js 258:54
Module parse failed: Unexpected token (258:54)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

...

| function isAccessError(jsonResponse){
| 
>     if(Array.isArray(jsonResponse) && jsonResponse[0]?.message == `Cannot retrieve documents in a user's private folder; move the document to a named folder`){
|         return true;
|     }

箭头指向外部模块的调用,Array.isArray258外部模块的行,即错误中引用的行。

如果我删除外部模块的导入,错误就会消失

import bulkDependecy from 'sfdc-dependency-api-bulk';

奇怪的是我可以Array.isArray()直接在处理程序上使用

//import bulkDependecy from 'sfdc-dependency-api-bulk';

async function getUsage(event, context) {

  const {ids,connection} = event.body;

  // THIS DOESN'T FAIL
  Array.isArray(['true']);

  //let result = await bulkDependecy.getUsage(ids,connection);

  return {
    statusCode: 200,
    body: 'result'
  };
}
export const handler = getUsage;

这是我的serverless.yml

service:
  name: happy-soup-bulk-service

plugins:
  - serverless-bundle
  - serverless-pseudo-parameters

provider:
  name: aws
  runtime: nodejs12.x
  memorySize: 256
  stage: ${opt:stage, 'dev'}
  region: eu-west-1
  
functions:
  createAuction:
    handler: src/handlers/getUsage.handler
    events:
      - http:
          method: POST
          path: /usage

和我的package.json

{
  "name": "happy-soup-bulk-service",
  "version": "1.0.0",
  "description": "Codingly template for Serverless Framework projects",
  "author": "Ariel Weinberger <ariel@codingly.io>",
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.0.15",
    "babel-polyfill": "^6.23.0",
    "babel-preset-env": "^1.6.0",
    "serverless-bundle": "^1.3.3",
    "serverless-pseudo-parameters": "^2.5.0",
    "webpack": "^4.35.2"
  },
  "dependencies": {
    "aws-sdk": "^2.639.0",
    "sfdc-dependency-api-bulk": "1.0.0"
  }
}

标签: node.jswebpackserverless

解决方案


推荐阅读