如何将rollup中的所有节点模块设置为外部?

Tro*_*ers 10 module rollup node.js

我想将从 node_modules 导入的所有模块作为外部模块。这个的配置是什么?

我尝试过但没有成功:

import path from "path";
import glob from "glob";
import multiEntry from "rollup-plugin-multi-entry";

export default {
    entry: "src/**/*.js",
    format: "cjs",
    plugins: [
        multiEntry()
    ],
    external: glob.sync("node_modules/**/*.js").map(file => path.resolve(file)),
    dest: "dist/bundle.js"
}];
Run Code Online (Sandbox Code Playgroud)

或者

import multiEntry from "rollup-plugin-multi-entry";

export default {
    entry: "src/**/*.js",
    format: "cjs",
    plugins: [
        multiEntry()
    ],
    external: id => id.indexOf("node_modules") !== -1,
    dest: "dist/bundle.js"
}];
Run Code Online (Sandbox Code Playgroud)

小智 13

使用 rollup 2.63 这对我有用

export default {
    // ...
    external: [/node_modules/],
    // ...
}
Run Code Online (Sandbox Code Playgroud)


Isi*_*osa 7

您可以使用 package.json 依赖项字段来完成此操作:

const pkg = require('./package.json');

export default {
    // ...
    external : Object.keys(pkg.dependencies),
    // ...
}
Run Code Online (Sandbox Code Playgroud)