汇总 - 忽略一些导入

Jac*_*kie 6 javascript rollup node.js ecmascript-6 vue.js

我正在使用 Vuetify1.5.18并具有以下代码...

import Vuetify from 'vuetify'
...
// rollup config
import VuePlugin from 'rollup-plugin-vue';
import css from 'rollup-plugin-css-only';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import pkg from './package.json';

// const external = Object.keys(pkg.dependencies);
const plugins = [
    resolve({
      module: true,
      main: true
    }),
    commonjs(),
    VuePlugin(),
    css()
];
module.exports = {
  plugins,
  input: 'src/index.js',
  output: {
    file: 'dist/index.js',
    format: 'esm'
  }
};
Run Code Online (Sandbox Code Playgroud)

但是当我运行rollup时,我在输出中得到以下内容...

import vue from 'vue';
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时,出现以下错误...

无法解析模块说明符“vue”。相对引用必须以“/”、“./”或“../”开头。`

我不是在 UI 项目中而是在我的服务器中像这样加载 Vue...

// Footer.pug
script(type="module")
          | import Vue from '/vue/vue.esm.browser.js'
          | const global = window || global;
          | global.Vue = Vue;
Run Code Online (Sandbox Code Playgroud)

所以那条线不应该在那里。如果我删除 Vuetify,它就会消失。此外,如果我指向我通过 Koa 应用程序托管的版本,则...

import * as Vuetify from '/vuetify/vuetify.js';
Run Code Online (Sandbox Code Playgroud)

一切似乎也都有效。我也可以进入并手动删除import Vuetify from 'vuetify'并将此行添加到服务器上的模板中...

| const global = window || global;
| global.vue = global.Vue;
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 rollup 忽略任何“vue”导入?