【问题标题】:rollup - How can I write CSS outside the JS destination folderrollup - 如何在 JS 目标文件夹之外编写 CSS
【发布时间】:2020-09-13 22:00:07
【问题描述】:

Svelte 使用 Rollup 进行捆绑。这是文件夹结构。

svelte/
├── node_modules/
├── public/
│   ├── bundle.js
│   └── bundle.css
├── src/
│   ├── App.svelte
│   └── main.js
└── rollup.config.js

我想将bundle.js 和bundle.css 都保存在根文件夹之外。

这是汇总配置。

input: "src/main.js",
    output: {
        format: "cjs",
        name: "app",
        file: "../../src/svelte/bundle.js",
    },
    plugins: [
        svelte({
            css: (css) => {
                css.write("/bundle.css");
            },
        }),
    ],

我可以很好地保存bundle.js,但传递给css.write() 的bundle.css 的路径相对 到bundle.js 目标目录。

如果我尝试执行 css.write("../bundle.css"),我会收到此错误...

Error: The "fileName" or "name" properties of emitted files must be strings that are neither absolute 
nor relative paths and do not contain invalid characters, received "/bundle-svelte-activities.css".

【问题讨论】:

    标签: javascript bundler svelte rollup


    【解决方案1】:

    这里有一些 sn-ps 来实现它:

    ...
    import css from 'rollup-plugin-css-asset';
    
    export default {
        input: 'src/main.js',
        output: {
            sourcemap: true,
            format: 'iife',
            name: 'app',
            assetFileNames: 'bundle.css',
            dir: 'public/build',
            entryFileNames: 'bundle.js'
        },
        plugins: [
           svelte({
                ...
                emitCss: true,
           }),
           ...
           css({   
               name: 'bundle',
           }),
           ...
         ],
         ...  
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多