[英]Rollup bundle node_modules into app when using Typescript
我有一个 Typescript 应用程序。 我想将 node_modules 中的依赖项捆绑到生成的包中。 到目前为止,这是我根据这些帖子尝试过的( Does rollup bundle node_modules into bundle.js? , Does rollup bundle node_modules into bundle.js? )。
这是我的汇总配置和我尝试捆绑的简单文件:
import typescript from "@rollup/plugin-typescript";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import globals from "rollup-plugin-node-globals";
import builtins from "rollup-plugin-node-builtins";
export default {
input: "src/test.ts",
output: {
dir: "dist/",
format: "iife",
},
plugins: [
resolve({jsnext: true}),
commonjs({ include: ["src/test.ts", "node_modules/**"] }),
// I need to polyfill some node stuff
globals(),
builtins(),
typescript({ noEmitOnError: false, outDir: "dist/" }),
],
};
文件:
import * as obj from 'some-module'
console.log(obj)
使用汇总 + typescript 时,如何将 node_modules 中的依赖项捆绑到最终的 output 中? 我怀疑问题是 Typescript 插件正在输出使用require
和 rollup 无法识别require
的文件。
在package.json
中,确保要包含的依赖项注册在dependencies
属性而不是peerDependencies
中。 然后汇总将它们捆绑在 output 中。
您需要将 TypeScript 配置为 output ES 模块才能工作。 在 tsconfig.json 中将模块设置为“ESNext”:
{
"compilerOptions": {
"module": "ESNext"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.