-1

真的在为此苦苦挣扎。我正在尝试在节点 14 (AWS Lamda) 上运行 ESM 脚本

我正在尝试运行此代码以将 3D 对象转换为三个 JSON。

这需要node -r esm fbx2three.js model.fbx运行。

我想我可以用我在这个博客中找到的这种方法来做到这一点

IE

索引.ts

import Convert from './runner.js'

Runner.js

require = require("esm")(module);
module.exports = require("./converter.mjs").default;

转换器.mjs

import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js'

export default function convertObj(url){
    const loader = new OBJLoader()
    const json = loader.parse(url).toJSON()
}

我现在在编译时遇到了这个错误

Object.defineProperty(exports, "__esModule", { value: true });

ReferenceError: exports is not defined

From converter.mjs:2:29

哪个编译为

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const OBJLoader_js_1 = require("three/examples/jsm/loaders/OBJLoader.js");
function convertObj(url) {
    const loader = new OBJLoader_js_1.OBJLoader();
    const json = loader.parse(url).toJSON();
}
exports.default = convertObj;

tsconfig

{
  "compilerOptions": {
    "outDir": "./bin",   
    "rootDir": "./src", 
    "lib": ["esnext"],
    "target": "es6",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "allowJs": true,
    "moduleResolution": "node"
  }
}

包裹

{
  "name": "converter",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "update": "tsc && claudia update  --handler bin/index.handler --timeout 60 --memory 1024",
    "create": "tsc && claudia create --region ap-southeast-2 --handler bin/index.handler",
    "pack": "tsc && claudia pack --api-module bin/index --force",
    "test": "claudia test-lambda --event event.json"
  },
  "main": "bin/index",
  "files": [
    "bin/**/*.*",
    "package.json"
  ],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "esm": "^3.2.25",
    "s3-unzip": "^0.1.13",
    "three": "^0.135.0",
    "typescript": "^4.5.2"
  },
  "devDependencies": {
    "@types/node": "^16.11.11",
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "claudia": "^5.14.0"
  }
}
4

1 回答 1

0

尝试使两者都为假(或删除),

  • esModuleInterop
  • 允许合成默认导入
于 2021-12-04T00:23:05.253 回答