首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rollup摇动树

使用rollup摇动树
EN

Stack Overflow用户
提问于 2019-03-25 21:46:07
回答 1查看 1.9K关注 0票数 6

我有一个项目,其中我使用Rollup捆绑了一个组件库(生成一个bundle.esm.js文件)。然后在另一个项目中使用这些组件,该项目生成使用这些组件的网页-每个页面使用不同的组件。问题是,无论我使用的是哪个组件,整个组件库总是与不同的页面包捆绑在一起,这不必要地增加了包的大小。

这是我的汇总设置:

代码语言:javascript
复制
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import pkg from './package.json';

const extensions = [
  '.js', '.jsx', '.ts', '.tsx',
];
export default [
  {
    input: './src/base/index.ts',
    plugins: [
      peerDepsExternal(),
      resolve({ extensions }),
      babel({
        exclude: 'node_modules/**',
        extensions,
      }),
      commonjs(),
    ],
    output: [
      { file: pkg.main, format: 'cjs', sourcemap: true },
      { file: pkg.module, format: 'es', sourcemap: true },
    ],
    watch: {
      clearScreen: false,
    },
  },
];

在webpack中,我也将"modules“设置为false。

EN

回答 1

Stack Overflow用户

发布于 2020-06-27 15:15:33

为了从两端实现树形代码,你需要做一些事情--构建的包和使用它的项目。

从您的代码片段中,我看到您没有在汇总配置文件中添加标志preserveModules: true,以防止捆绑构建输出。一个捆绑的文件FYI,无法绑定到Webpack树上。

代码语言:javascript
复制
export default {
  ...
  preserveModules: true,
  ...
}

在使用它的项目一侧,您必须在package.json中指定sideEffects -阅读doc以了解如何配置它们。除此之外,webpack里面的optimization也要有sideEffects: true,也要看here文档。

希望这能有所帮助!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55339256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档