首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >preserveModules的汇总例外

preserveModules的汇总例外
EN

Stack Overflow用户
提问于 2019-03-05 14:01:26
回答 1查看 1.9K关注 0票数 4

我使用一个名为rollup-plugin-lit-css的汇总插件将.css文件转换为javascript模块。这个插件非常简单,它本质上只是将export default附加到文件中。

我的汇总配置使用preserveModulesoutput.dir来避免捆绑模块。

代码语言:javascript
复制
import resolve from 'rollup-plugin-node-resolve';
import litcss from 'rollup-plugin-lit-css';
import babel from 'rollup-plugin-babel';
import commonjs from 'rollup-plugin-commonjs';

export default {
  preserveModules: true,
  input: 'src/a.js',
  output: {
    dir: 'dist',
    format: 'es',
  },
  plugins: [
    litcss(),
    babel({ babelrc: true }),
    resolve({ browser: true }),
    commonjs(),
  ],
};

当前行为

假设a导入了a.css,也导入了b。当前的情况是这样的:

代码语言:javascript
复制
src/
├── a.js
├── a.css
├── b.js

如下所示:

代码语言:javascript
复制
dist/
├── a.js
├── a.css
├── b.js

期望输出

相反,我想要得到的是:

代码语言:javascript
复制
dist/
├── a.js
├── b.js

a.css转换后的内容捆绑到a.js

EN

回答 1

Stack Overflow用户

发布于 2020-05-06 13:26:00

不能使用preserveModules有选择地创建单独的区块,请改用manualChunks

代码语言:javascript
复制
{
  output: {
    dir: 'dist',
    format: 'es',
    chunkFileNames: '[name].js'
  },
  manualChunks: id => path.parse(id).name
}

在本例中,a.jsa.css具有相同的区块名称a,并将为它们创建a.jschunkFileNames指定输出文件名,并且是必需的。

完成配置:

代码语言:javascript
复制
import path from 'path'
import resolve from 'rollup-plugin-node-resolve'
import litcss from 'rollup-plugin-lit-css'
import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'

export default {
  input: 'a.js',
  output: {
    dir: 'dist',
    format: 'es',
    chunkFileNames: '[name].js'
  },
  plugins: [
    litcss(),
    babel({ babelrc: true }),
    resolve({ browser: true }),
    commonjs(),
  ],
  manualChunks: id => path.parse(id).name
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54996340

复制
相关文章

相似问题

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