【发布时间】:2023-04-02 06:28:01
【问题描述】:
这是我的代码:
// lib/test2.ts
export function test2() {
console.log("test2");
}
// pages/index.tsx
import { GetServerSideProps } from "next";
// works
import { test } from "../lib/test.js";
// error
import { test2 } from "../lib/test2.js";
export const getServerSideProps: GetServerSideProps = async ({
req,
}): Promise<{ props: {} }> => {
test();
test2();
return { props: {} };
};
export default function Home(props: {}) {
return <div>Hi</div>;
}
当我运行这段代码时,我得到了
Module not found: Can't resolve '../lib/test2.js' in '/Users/USER/Documents/software/nextjs-test/pages'
我不知道为什么。 lib/test2.ts不应该编译成lib/test2.js,导入应该没问题吧?我想我不太熟悉在混合使用 TypeScript 时如何实际解决导入问题。
链接到这里的所有代码:https://github.com/arcticmatt/nextjs-test
【问题讨论】:
-
您的意思是“
import { test2 } from "../lib/test2.ts";有效”(.ts而不是.js)?否则我看不出这些导入样式之间的区别。 -
@Bergi 导入样式没有区别。不同之处在于
test.js实际上是一个文件。test2.js不存在,test2.ts存在。查看源代码可能会更清楚 -
你是说
test.js是用JavaScript写的,test2.ts是用TypeScript写的?您还没有发布包含test.js内容的sn-p,这令人困惑。
标签: typescript next.js es6-modules