我在turborepo中有一个typescript“test”包,它可以导入和导出typescript函数。
因为它是turborepo,所以它被复制到node_modules/test。
当我尝试运行import {func} from "test"
时,它给我这个错误SyntaxError: Cannot use import statement outside a module.
测试包的Ts配置是。
{
"extends": "tsconfig/base.json",
"compilerOptions": {
"declaration": true,
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"baseUrl": ".",
},
"include": ["**/*.ts"]
}
此节点应用程序的Nodemon配置
{
"watch": ["src"],
"ignore": ["src/**/*.test.ts"],
"ext": "ts,mjs,js,json,graphql",
"exec": "tsc && node ./dist/index.js",
"legacyWatch": true
}
但是当我尝试在nextjs项目中导入相同的东西时,配置中包含了这个。
const withTM = require('next-transpile-modules')(['test'])
它工作得非常好。
在我看来,在节点服务器端。当我包括节点模块的.ts时。它没有被传播。
有办法解决吗?
我也尝试过使用tsc构建包,但是将dist文件夹保留在包中似乎并不理想。
3条答案
按热度按时间2o7dmzc51#
尝试使用
"type": "module"
进行导入。https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-7.html#type-in-packagejson-and-new-extensionsvh0rcniy2#
这对我有用。
packages/test/package.json
rur96b6h3#
对于node服务器,我使用
ts-node --transpile-only index.ts
,它可以完美地处理.ts
文件。