У меня есть ошибка: «экспорт» только для чтения vuejs - PullRequest
0 голосов
/ 14 апреля 2020

Я делаю проект разработки в vuejs.

Я получаю сообщение в своем консольном браузере: ошибка типа: «экспорт» доступен только для чтения vuejs. Появляется, когда я добавил vue -loader в свой проект. Если я удаляю, у меня появляется ошибка, и я должен установить vue -loader.

Здесь мой webpack.base:

      'use strict'
    const path = require('path')
    const utils = require('./utils')
    const config = require('../config')
    const vueLoaderConfig = require('./vue-loader.conf')

    function resolve (dir) {
    return path.join(__dirname, '..', dir)
    }



    module.exports = {
    context: path.resolve(__dirname, '../'),
    entry: {
    app: './src/main.js'
    },
    output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
    ? config.build.assetsPublicPath
    : config.dev.assetsPublicPath
    },
    resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
    'vue$': 'vue/dist/vue.esm.js',
    '@': resolve('src'),
    }
    },
    module: {
    rules: [
    {
      test: /\.vue$/,
      loader: 'vue-loader',
      options: vueLoaderConfig
    },
    {
      test: /\.js$/,
      loader: 'babel-loader',
      include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
    },
    {
      test: /\.sc|ass$/,
      use: [
        { loader: "css-loader" },          
        { loader: "sass-loader" }
      ]
    },
    {
      test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
      loader: 'url-loader',
      options: {
        limit: 10000,
        name: utils.assetsPath('img/[name].[hash:7].[ext]')
      }
    },
    {
      test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
      loader: 'url-loader',
      options: {
        limit: 10000,
        name: utils.assetsPath('media/[name].[hash:7].[ext]')
      }
    },
    {
      test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
      loader: 'url-loader',
      options: {
        limit: 10000,
        name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
      }
    }
    ]
    },
    node: {
    // prevent webpack from injecting useless setImmediate polyfill because Vue
    // source contains it (although only uses it if it's native).
    setImmediate: false,
    // prevent webpack from injecting mocks to Node native modules
    // that does not make sense for the client
    dgram: 'empty',
    fs: 'empty',
    net: 'empty',
    tls: 'empty',
    child_process: 'empty'
    }
    }

Здесь мой webpack.dev:

    'use strict'
    const utils = require('./utils')
    const webpack = require('webpack')
    const config = require('../config')
    const merge = require('webpack-merge')
    const path = require('path')
    const baseWebpackConfig = require('./webpack.base.conf')
    const CopyWebpackPlugin = require('copy-webpack-plugin')
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
    const portfinder = require('portfinder')
    const { VueLoaderPlugin } = require('vue-loader')

    const HOST = process.env.HOST
    const PORT = process.env.PORT && Number(process.env.PORT)

    const devWebpackConfig = merge(baseWebpackConfig, {
      module: {
        rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
      },
      // cheap-module-eval-source-map is faster for development
      devtool: config.dev.devtool,

      // these devServer options should be customized in /config/index.js
      devServer: {
        disableHostCheck: true,
        https: true,
        clientLogLevel: 'warning',
        historyApiFallback: {
          rewrites: [
            { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
          ],
        },
        hot: true,
        contentBase: false, // since we use CopyWebpackPlugin.
        compress: true,
        host: HOST || config.dev.host,
        port: PORT || config.dev.port,
        open: config.dev.autoOpenBrowser,
        overlay: config.dev.errorOverlay
          ? { warnings: false, errors: true }
          : false,
        publicPath: config.dev.assetsPublicPath,
        proxy: config.dev.proxyTable,
        quiet: true, // necessary for FriendlyErrorsPlugin
        watchOptions: {
          poll: config.dev.poll,
        }
      },
      plugins: [

        new webpack.DefinePlugin({
          'process.env': require('../config/dev.env')
        }),
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
        new webpack.NoEmitOnErrorsPlugin(),
        // https://github.com/ampedandwired/html-webpack-plugin
        new HtmlWebpackPlugin({
          filename: 'index.html',
          template: 'index.html',
          inject: true
        }),
        // copy custom static assets
        new CopyWebpackPlugin([
          {
            from: path.resolve(__dirname, '../static'),
            to: config.dev.assetsSubDirectory,
            ignore: ['.*']
          }
        ]),
        new VueLoaderPlugin(),
      ]
    })

    module.exports = new Promise((resolve, reject) => {
      portfinder.basePort = process.env.PORT || config.dev.port
      portfinder.getPort((err, port) => {
        if (err) {
          reject(err)
        } else {
          // publish the new Port, necessary for e2e tests
          process.env.PORT = port
          // add port to devServer config
          devWebpackConfig.devServer.port = port

          // Add FriendlyErrorsPlugin
          devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
            compilationSuccessInfo: {
              messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
            },
            onErrors: config.dev.notifyOnErrors
            ? utils.createNotifierCallback()
            : undefined
          }))

          resolve(devWebpackConfig)
        }
      })
    })

мой пакет. json:

    {
      "name": "silverpredict",
      "version": "1.0.0",
      "description": "silverpredict project",
      "author": "Alexandre SZYMKIW <aszymkiw@silverpredict.com>",
      "private": true,
      "scripts": {
        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "build": "node build/build.js"
      },
      "dependencies": {
        "@websanova/vue-auth": "^2.21.14-beta",
        "ajv-keywords": "^3.4.1",
        "axios": "^0.19.2",
        "bootstrap": "^4.4.1",
        "bootstrap-vue": "^2.11.0",
        "es6-promise": "^4.2.8",
        "html-webpack-plugin": "^4.2.0",
        "node-sass": "^4.13.1",
        "sass-loader": "^7.3.1",
        "terser-webpack-plugin": "^2.3.5",
        "vue": "*",
        "vue-auth": "^1.0.0-alpha.1",
        "vue-axios": "^2.1.5",
        "vue-loader": "^15.9.1",
        "vue-router": "^3.1.6",
        "vuetify": "^1.5.18",
        "vuex": "^3.1.3",
        "webpack": "^4.42.1",
        "webpack-cli": "^3.3.11",
        "webpack-dev-server": "^3.10.3"
      },
      "devDependencies": {
        "autoprefixer": "^7.1.2",
        "babel-core": "^6.22.1",
        "babel-helper-vue-jsx-merge-props": "^2.0.3",
        "babel-loader": "^7.1.1",
        "babel-plugin-syntax-jsx": "^6.18.0",
        "babel-plugin-transform-runtime": "^6.22.0",
        "babel-plugin-transform-vue-jsx": "^3.5.0",
        "babel-preset-env": "^1.3.2",
        "babel-preset-stage-2": "^6.22.0",
        "chalk": "^2.0.1",
        "copy-webpack-plugin": "^4.0.1",
        "css-loader": "^0.28.11",
        "extract-text-webpack-plugin": "^3.0.0",
        "file-loader": "^1.1.4",
        "friendly-errors-webpack-plugin": "^1.6.1",
        "node-notifier": "^5.1.2",
        "optimize-css-assets-webpack-plugin": "^3.2.0",
        "ora": "^1.2.0",
        "portfinder": "^1.0.13",
        "postcss-import": "^11.0.0",
        "postcss-loader": "^2.0.8",
        "postcss-url": "^7.2.1",
        "rimraf": "^2.6.0",
        "semver": "^5.3.0",
        "shelljs": "^0.7.6",
        "uglifyjs-webpack-plugin": "^1.1.1",
        "url-loader": "^0.5.8",
        "vue-style-loader": "^3.0.1",
        "vue-template-compiler": "^2.5.2",
        "webpack-bundle-analyzer": "^2.9.0",
        "webpack-merge": "^4.1.0"
      },
      "engines": {
        "node": ">= 6.0.0",
        "npm": ">= 3.0.0"
      },
      "browserslist": [
        "> 1%",
        "last 2 versions",
        "not ie <= 8"
      ]
    }

Мой главный. js:

    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue';
    import axios from 'axios';
    import Vuetify from 'vuetify' 
    import VueAuth from '@websanova/vue-auth';
    import VueAxios from 'vue-axios';
    import https from 'http';

    import { router,auth } from '@/config/_helpers';
    import { store } from '@/config/_store';

    import VueRouter from 'vue-router';

    import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'

    import '../node_modules/bootstrap/dist/css/bootstrap.min.css'
    import '../node_modules/bootstrap-vue/dist/bootstrap-vue.min.css'


    import App from './App';

    window.Vue = Vue;

    Vue.router = router;

    Vue.use(Vuetify, { iconfont: "mdi" });
    Vue.use(VueRouter);
    Vue.use(VueAxios, axios);
    Vue.use(VueAuth,auth);

    Vue.use(BootstrapVue);
    Vue.use(IconsPlugin);

    axios.defaults.baseURL = '/';
    axios.defaults.httpsAgent= new https.Agent({
      rejectUnauthorized: false
    });

    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
    axios.defaults.headers.common['Access-Control-Allow-Credentials'] = true;
    Vue.component('index',App);

    /* eslint-disable no-new */
    const app = new Vue({
      el: '#app',
      router,
      store,
      Vuetify,
      render: app => app(App)
    });

Как решить эту проблему?

Tnak Вы за ваш ответ !!

1 Ответ

0 голосов
/ 14 апреля 2020

Спасибо за ваш ответ !!

Вот мой конфиг:

Спасибо за ваш ответ !!

Вот мой конфиг:

    {
      "presets": [
        ["env", {
          "modules": false,
          "targets": {
            "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
          }
        }],
        "stage-2"
      ],
      "plugins": ["transform-vue-jsx", "transform-runtime"]
    }

У меня есть только эта ошибка в моей консоли. Ничего другого: /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...