我有以下汇总配置:
import cjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import json from "rollup-plugin-json";
export default {
input: "lib/state-info.js",
output: {
file: "rolled.js",
format: "cjs"
},
external: ["aws-sdk"],
plugins: [
json(),
cjs({
include: "node_modules/**",
exclude: ["node_modules/aws-sdk/**"]
}),
resolve({
jsnext: true,
main: true,
browser: false,
preferBuiltins: false,
extensions: [".js", ".json"]
})
]
};
我成功了,但警告说有很多未解决的依赖。以下函数是缺失函数的子集:
进程(由lib / vote-smart / get-state-info.js导入,node_modules / abstracted-admin / lib / db.js,commonjs-external:process) http(由node_modules / axios / lib / adapters / http.js导入,node_modules / follow-redirects / index.js,commonjs-external:http,node_modules / firebase-admin / lib / auth / credential.js,node_modules / request / request.js,node_modules / request / node_modules / http-signature / lib / signer.js,node_modules / forever-agent / index.js,node_modules / request / node_modules / form-data / lib / form_data.js,node_modules / tunnel-剂/ index.js)
https(由node_modules / axios / lib / adapters / http.js导入,node_modules / follow-redirects / index.js,commonjs-external:https,node_modules / firebase-admin / lib / auth / token-generator.js ,node_modules / firebase-admin / lib / utils / api-request.js,node_modules / firebase-admin / lib / auth / credential.js,node_modules / request / request.js,node_modules / forever-agent / index.js,node_modules /request/node_modules/form-data/lib/form_data.js,node_modules / tunnel-agent / index.js)
dgram(由node_modules / request / node_modules / sntp / lib / index.js导入,commonjs-external:dgram)
tls(由node_modules / forever-agent / index.js导入,commonjs-external:tls,node_modules / tunnel-agent / index.js) 常量(由node_modules / graceful-fs / polyfills.js导入,commonjs-external:常量)
memcpy(由node_modules / bytebuffer / dist / bytebuffer-node.js导入,commonjs-external:memcpy)
计时器(由node_modules / google-gax / lib / api_callable.js导入,commonjs-external:计时器)
我对汇总很新,我是否遗漏了任何明显的东西?
注意,我假设作为节点本身一部分的process
和fs
等函数可以添加为" external"一切都应该好,对吧?像memcpy
或timers
这样的函数对于静态分析无法检测到它们的原因是一个谜。
更新:我发现只需添加rollup-plugin-node-builtins
插件即可解决除了两个未解决的依赖项之外的所有依赖项。剩下的两个是:
我可以在本地安装fast-crc32c
依赖项,这个问题就消失了(虽然我不知道为什么我需要这样做)但是当我尝试为memcpy
做同样的事情时它无法安装。