gpt4 book ai didi

node.js - 为什么Typescript编写的node_module会出现语法错误?

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:19 26 4
gpt4 key购买 nike

node_modules/
my_module/
lib/
index.ts
src/
index.ts

我制作了一个自定义模块 my_module 并希望将其用作外部库。代码如下:

[src/index.ts]

import { hello } from 'my_module'
console.log(hello)

[node_modules/my_module/index.ts]

export const hello = "Hello"

我的tsconfig.json“module”:“commonjs”,“target”:“es6”,所以我认为导入关键字在Typescript文件中可以很好地工作。

正如我所料,src/index.ts 中的 import 关键字效果很好,但 node_modules/my_module/index.ts 中的 export 关键字是一个意外的标记。我怎样才能解决这个问题?

export const hello = "hello"
^^^^^^

SyntaxError: Unexpected token export
at new Script (vm.js:83:7)
at createScript (vm.js:267:10)
at Object.runInThisContext (vm.js:319:10)
at Module._compile (internal/modules/cjs/loader.js:685:28)
at Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Object.require.extensions.(anonymous function) [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:431:14)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Module.require (internal/modules/cjs/loader.js:658:17)

最佳答案

除非项目配置为从 node_modules 转译模块(通常不鼓励这样做,因为效率低且不需要),否则预计外部模块将按原样进行评估,并且 CommonJS 模块中不允许使用 import 关键字。

my_module 应在发布前编译,即应执行 tsc,并且 dist 应包含转译的 *.js 和 *.d.ts 类型。

主要my_module package.json 应指定入口点,"main": "dist/index.js"

该包可以选择包含 .npmrc file从已发布的文件中排除 src,但这不是必需的。

关于node.js - 为什么Typescript编写的node_module会出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53608527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com