我正在尝试创建一个可以在浏览器中使用的npm模块。
我用的是打字稿和汇总。
我的tsconfig.json是:
{
"compilerOptions": {
"module": "CommonJS",
"outDir": "lib",
"strict": true,
"rootDir": "src"
}
}我的rollup.config.js是:
import typescript from "@rollup/plugin-typescript";
export default {
input: "src/index.ts",
output: {
dir: "lib",
format: "iife",
},
plugins: [typescript()],
};在src/index.ts内部,我有以下内容:
// src/index.ts
import log from './log'
const myFn = () => {
...myFn code
}我的问题是,在这个包中,我得到了以下内容:
// lib/index.js bundle
var log_1 = require("./log");当我实际上想要将log文件打包到主lib/index.js中时。
我怎样才能用打字稿和汇总来完成这个任务呢?
注意:我尝试添加outFile (ts文档),但“@rollup/plugin”不支持这一点。
我是否必须自己编译tsc,然后再编写汇总包?
发布于 2021-03-26 07:43:26
Rollup要求TypeScript编译器生成ES模块,以便正确地捆绑代码。您需要将模块格式更改为"ESNext“,而不是tsconfig.json中的"CommonJS”,或者更改汇总配置中的@rollup/plugin-typescript配置:
typescript({ module: "ESNext" })从汇总/插件#788开始,如果配置不正确,就会收到警告。
@ Rollup /plugin-类型记录:汇总要求TypeScript生成ES模块。不幸的是,您的配置指定了"esnext“以外的”模块“。除非您知道自己在做什么,否则请将目标tsconfig.json文件或插件选项中的“模块”改为"esnext“。
https://stackoverflow.com/questions/65594174
复制相似问题