javascript - 如何使用 Vue 配置汇总?

标签 javascript vue.js rollupjs

我正在使用 Vue.js 开发项目,并与 Rollup 捆绑在一起。

这是我的 rollup.config.js 文件

import vue from 'rollup-plugin-vue2'
import less from 'rollup-plugin-less2';
import buble from 'rollup-plugin-buble'
import nodeResolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import uglify from 'rollup-plugin-uglify'
import livereload from 'rollup-plugin-livereload'
import serve from 'rollup-plugin-serve'

const plugins = [
    vue({'css':'none'}),
    less({output: "dist/build.css"}),
    buble({exclude: 'node_modules/**'}),
    nodeResolve({browser: true, jsnext: true}),
    commonjs()
]

if (process.env.NODE_ENV === 'production') {
    plugins.push(uglify())
}

if (process.env.NODE_ENV === 'development') {
    plugins.push(livereload('dist'))
    plugins.push(serve({
        contentBase: "",
        open: true
    }))
}

export default {
    input: 'src/main.js',
    output: {
        file: 'dist/build.js',
        format: 'iife',
        sourcemap: true,
        //external: ["vue","vue-router"],
    },
    //external: ["vue","vue-router"],
    plugins
}

这是我的 main.js 文件。

import Vue from 'vue'
import App from './App.vue'
import VueRouter from "vue-router";

Vue.use(VueRouter);

const Foo = {template: '<div>foo</div>'}
const Bar = {template: '<div>bar</div>'}

const routes = [
    {path: '/foo', component: Foo},
    {path: '/bar', component: Bar}
];

const router = new VueRouter({
    routes
});

var app = new Vue({
    router: router,
    el: '#app',
    render: h => h(App)
});

运行项目后出现这个错误

Uncaught ReferenceError: process is not defined

如果我使用 Vue 作为外部库并取消注释此 ["vue","vue-router"], external: ["vue","vue-router"] 一切正常。

如何使我的项目编译并使用 rollup

最佳答案

我遇到了同样的问题。在这里找到解决方案:https://github.com/rollup/rollup/issues/487

您必须使用汇总替换插件来替换所有导入文件中对 process.env.NODE_ENV 的所有调用,如下所示:

plugins: [
  replace({
    'process.env.NODE_ENV': JSON.stringify( 'production' )
  })
]

关于javascript - 如何使用 Vue 配置汇总?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48428662/

相关文章:

javascript - 防止汇总将 Promise 重命名为 Promise$1

javascript - JS : karma rollup empty bundle

javascript - Amcharts 图像 "304 Not Modified"错误

javascript - 压缩 JavaScript 文件

javascript - 如何将子集合添加到 Firestore 中的文档?

vue.js - 嵌套路由未在路由器 View 中呈现

javascript - Vue Dynamic V-For 显示和隐藏 div

node.js - Rollup 不捆绑声明文件

javascript - JSON 中的浮点零 (0000000000000000E+00) 未在 jQuery (Windows)/JSONLint 中解析

javascript - 循环后暂停 css sprite 一秒钟