javascript - 汇总异常以保留模块
问题描述
我使用一个名为rollup-plugin-lit-css
将.css
文件转换为 javascript 模块的汇总插件。该插件非常简单,它基本上只是附加export default
到文件中。
我的汇总配置使用preserveModules
并output.dir
避免捆绑模块。
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
importa.css
和b
. 目前的情况是这样的:
src/
├── a.js
├── a.css
├── b.js
进入这个:
dist/
├── a.js
├── a.css
├── b.js
期望的输出
相反,我想得到这个:
dist/
├── a.js
├── b.js
将转换后的内容a.css
捆绑成a.js
解决方案
preserveModules
不能用于选择性地创建单独的块,请manualChunks
改用。
{
output: {
dir: 'dist',
format: 'es',
chunkFileNames: '[name].js'
},
manualChunks: id => path.parse(id).name
}
在这种情况下,a.js
并a.css
具有相同的块名称a
,并且a.js
将为它们创建。chunkFileNames
指定输出文件名并且是必需的。
完成配置:
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
}
推荐阅读
- sql - 在连接表上使用任意布尔表达式进行查询
- visual-studio - Xamarin Forms Previewer 在 Visual Studio for Mac 中不起作用。给出错误消息:找不到与此 XAML 文件关联的基类
- c++ - 按给定字符串中出现的顺序打印字符及其频率,但我无法理解行“freq[str[i] - 'a']++;”
- javascript - 如何将此产品轮播更改为每项 1 行而不是每项 3 行?
- tensorflow - 你能在 Tensorflow 对象检测 API 中训练时改变你的学习率吗
- android - 状态栏未在 MIUI 和 EMUI 设备上显示
- javascript - 如何调试无法打开的页面(空白页面)
- asp.net-mvc-4 - 如何在 ASP.NETMVC 中将页面模型与网格事务 (iggrid) 一起发送到服务器
- karate - 调用功能并传入 javascript 变量
- javascript - 努力向我的映射数组添加链接。反应路由器