vue单文件组件,script中怎么能使用es6的export语法?

尝试用vue的单文件组件开发时,在script标签中使用export default时报错,项目已经安装了babel-loader和babel-preset-es2015,还是一直报错。

package.json
"devDependencies": {
    "babel-core": "^6.14.0",
    "babel-loader": "^6.2.5",
    "babel-plugin-component": "^0.4.3",
    "babel-preset-es2015": "^6.14.0",
    "css-loader": "^0.25.0",
    "extract-text-webpack-plugin": "^1.0.1",
    "file-loader": "^0.9.0",
    "html-loader": "^0.4.4",
    "html-webpack-plugin": "^2.22.0",
    "less": "^2.7.1",
    "less-loader": "^2.2.3",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "vue-loader": "^9.7.0",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.2"
  }
webpack.js
...
loaders: [
            {
                test: /\.html$/,
                loader: 'html-loader'
            },

            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: /node_modules/,
                query: {
                    presets: ['es2015']
                }
            },

            {
                test: /\.vue$/,
                loader: 'vue'
            },
....
vue: {
    loaders: {
        js: 'babel'
    }
},
...
App.vue
<template>
    <div id="app">
        <transition name="fade" mode="out-in">
            <router-view class="view"></router-view>
        </transition>
    </div>
</template>

<script>
    export default {}
    // module.exports = {};
</script>

<style lang="less">
    body {
        margin: 0;
    }
</style>

报错:

clipboard.png

阅读 7.5k
3 个回答
module.exports = {
    devtool: 'eval-source-map',     //配置生成Source Maps,选择合适的选项
    entry: __dirname + "/src/main.js",   //唯一入口文件
    output: {
        path: __dirname,    // 打包后文件存放的地方
        filename: "bundle.js"            //打包后输出文件的文件名
    },
    module: {
        loaders: [
            {
                test: /\.js$/, 
                exclude: /node_modules/, 
                loader: 'babel',
            },
            {
                test: /\.vue$/,
                loader: 'vue'
            }
        ]
    },
    resolve: {
        alias: {
            vue: 'vue/dist/vue.js'
        }
    },
    babel: {
        presets: ['es2015']
    },
    devServer: {
        // contentBase: "./",//本地服务器所加载的页面所在的目录
        colors: true,//终端中输出结果为彩色
        historyApiFallback: true,//不跳转
        inline: true//实时刷新
    } 
}

注意

babel: {
        presets: ['es2015']
    },

官方例子都是 export default
所以你问的问题方向就不对。

新手上路,请多包涵

请问App.vue文件中1、 export default {}

2、module.exports = {};有的文档用1有的地方用2
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题