当前位置: 首页 > 知识库问答 >
问题:

汇总、Vue和Buble,scss文件中出现意外标记

云煌
2023-03-14

我正试图使用Vue和Buble,按照Vue官方页面提供的示例,使用rollup编译SFC。但我一直在犯这样的错误:

src/wrapper.js → dist/chat.min.js...
[!] (plugin buble) SyntaxError: Unexpected token (2:0)
src\components\Chat.vue?vue&type=style&index=0&lang.scss (2:0)
1 :
2 : .chat, .chat>*, .chat * {

这是我的rollup.config.js:

import commonjs from '@rollup/plugin-commonjs'; // Convert CommonJS modules to ES6
import vue from 'rollup-plugin-vue'; // Handle .vue SFC files
import buble from '@rollup/plugin-buble'; // Transpile/polyfill with reasonable browser support
export default {
    input: 'src/wrapper.js', // Path relative to package.json
    output: {
        name: 'Chat',
        exports: 'named',
    },
    plugins: [
        commonjs(),
        vue({
            css: true, // Dynamically inject css as a <style> tag
            compileTemplate: true, // Explicitly convert template to render function
        }),
        buble(), // Transpile to ES5
    ],
};

这是我的wrapper.js:

  // Import vue component
  import component from "./components/Chat.vue";

  // Declare install function executed by Vue.use()
  export function install(Vue) {
    if (install.installed) return;
    install.installed = true;
    Vue.component("chat", component);
  }

  // Create module definition for Vue.use()
  const plugin = {
    install
  };

  // Auto-install when vue is found (eg. in browser via <script> tag)
  let GlobalVue = null;
  if (typeof window !== "undefined") {
    GlobalVue = window.Vue;
  } else if (typeof global !== "undefined") {
    GlobalVue = global.Vue;
  }
  if (GlobalVue) {
    GlobalVue.use(plugin);
  }

  // To allow use as module (npm/webpack/etc.) export component
  export default component;

我曾尝试从插件中删除buble,但最后出现了一个错误,错误是“意外令牌(请注意,您需要插件来导入非JavaScript的文件)”

共有2个答案

吕嘉赐
2023-03-14
// rollup.config.js
  import fs from 'fs';
  import path from 'path';
  import VuePlugin from 'rollup-plugin-vue';
  import alias from '@rollup/plugin-alias';
  import commonjs from '@rollup/plugin-commonjs';
  import replace from '@rollup/plugin-replace';
  import babel from 'rollup-plugin-babel';
  import minimist from 'minimist';
  import css from 'rollup-plugin-css-only';

  // Get browserslist config and remove ie from es build targets
  const esbrowserslist = fs.readFileSync('./.browserslistrc')
    .toString()
    .split('\n')
    .filter((entry) => entry && entry.substring(0, 2) !== 'ie');

  const argv = minimist(process.argv.slice(2));

  const projectRoot = path.resolve(__dirname, '..');

  const baseConfig = {
    input: 'src/entry.js',
    plugins: {
      preVue: [
        alias({
          resolve: ['.js', '.vue', '.css'],
          'vue$': require.resolve('vue/dist/vue.esm-bundler.js'),
          entries: {
            '@': path.resolve(projectRoot, 'src')
          }
        }),
      ],
      replace: {
        'process.env.NODE_ENV': JSON.stringify('production'),
        'process.env.ES_BUILD': JSON.stringify('false'),
      },
      vue: {
        css: false,
        template: {
          isProduction: true,
        },
      },
      babel: {
        exclude: 'node_modules/**',
        extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'],
      }
    },
  };

  const external = [
    'vue',
  ];


  // Customize configs for individual targets
  const buildFormats = [];
  if (!argv.format || argv.format === 'es') {
    const esConfig = {
      ...baseConfig,
      external,
      output: {
        file: 'dist/vue3lib.esm.js',
        format: 'esm',
        exports: 'named',
      },
      plugins: [
        replace({
          ...baseConfig.plugins.replace,
          'process.env.ES_BUILD': JSON.stringify('true'),
        }),
        ...baseConfig.plugins.preVue,
        VuePlugin(baseConfig.plugins.vue),
        babel({
          ...baseConfig.plugins.babel,
          presets: [
            [
              '@babel/preset-env',
              {
                targets: esbrowserslist,
              },
            ],
          ],
        }),
        commonjs(),
        css()
      ],
    };
    buildFormats.push(esConfig);
  }
  // Export config
  export default buildFormats;

希望这将为条目生成esm包

蒋招
2023-03-14

试试这个:

$ npm install --save-dev rollup-plugin-scss

汇总中。配置。js

import scss from 'rollup-plugin-scss';      // handles '.css' and '.scss'

plugins: { ..., scss() }

我真的不知道发生了什么。Vue.0和Vue.6.0以上的代码。6.

 类似资料:
  • 是否可以使用Rollup for Vue导出多个css资源?我想完成的是: 组件。SCS已提取<代码> 到目前为止,我已经设法使用rollup-plugin-bundle-scss捆绑了dist/components.scss,但我不确定如何添加其他文件。如果我在index.js条目文件中导入theme.scss,它也会添加到捆绑包中,这不是我想要的。我可以在package.json中公开src/

  • 使用汇总打包Vue组件时,会出现此错误: 卷起来。配置。js: 按钮vue: 有解决办法吗? 所以我找到了一个更好的方法: 最好使用vue sfc汇总来打包vue组件。

  • nit.java:593nit.java:569AntlrParserPorg.codehaus.groovy.control.CSTIntoAST(AntlrParserPnit.compile)在nit.java:546AntlrParserPgroovy.lang.CST(AntlrParserPoader.do)在oader.java:298SourceUnit.parse(SourceU

  • 我需要将Spring Security内核添加到Grails中。我已经使用:BuildConfig将spring核心安全插件添加到grails 2.3.8应用程序中。groovy插件{…编译“:Spring Security核心:2.0-RC4”。。。 然后是s2 quickstart sim GUser GRole 文件GUserGRole。groovy包含以下错误: Groovy:意外标记:v

  • 我有一个typescript项目,我试着用rollup和@rollup/plugin typescript构建它。除非我导入模块“./src/lib/pages”,否则项目将生成。 复制回购可在此处获得:https://github.com/igorovic/mangoost 问题出现在文件中:。 取消注释中的行 运行 在到处搜索了一整天之后,我没有找到任何可能导致这个错误的线索。

  • 本文向大家介绍jQuery鼠标事件汇总,包括了jQuery鼠标事件汇总的使用技巧和注意事项,需要的朋友参考一下 鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的。 1、click事件:点击鼠标左键时触发   $('p').click(function(){}); 示例: 2、dbclick事件:迅速连续的两次点击时触发   $('p').dbclick(function(){}); 示例