使用webpack构建vuejs插件

时间:2018-09-10 12:20:48

标签: vue.js webpack

./src/Loader.vue中的

错误     模块解析失败:C:\ test \ vuePlugin \ src \ Loader.vue意外令牌(1:0)     您可能需要适当的加载程序来处理此文件类型。     语法错误:意外令牌(1:0)         在Parser.pp $ 4.raise(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:2221:15)         在Parser.pp。意外(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:603:10)         在Parser.pp $ 3.parseExprAtom(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1822:12)         在Parser.pp $ 3.parseExprSubscripts(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1715:21)         在Parser.pp $ 3.parseMaybeUnary(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1692:19)         在Parser.pp $ 3.parseExprOps(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1637:21)         在Parser.pp $ 3.parseMaybeConditional(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1620:21)         在Parser.pp $ 3.parseMaybeAssign(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1597:21)         在Parser.pp $ 3.parseExpression(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:1573:21)         在Parser.pp $ 1.parseStatement(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:727:47)         在Parser.pp $ 1.parseTopLevel(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:638:25)         在Parser.parse(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:516:17)         在Object.parse(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ acorn \ dist \ acorn.js:3098:39)         在Parser.parse(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ lib \ Parser.js:902:15)         在NormalModule。 (C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ lib \ NormalModule.js:104:16)         在NormalModule.onModuleBuild(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ webpack-core \ lib \ NormalModuleMixin.js:310:10)         在nextLoader(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ webpack-core \ lib \ NormalModuleMixin.js:275:25)         在C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ webpack-core \ lib \ NormalModuleMixin.js:259:5         在Storage.finished(C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ enhanced-resolve \ lib \ CachedInputFileSystem.js:38:16)中完成         在C:\ Users \ shubham-sharma2 \ AppData \ Roaming \ npm \ node_modules \ webpack \ node_modules \ graceful-fs \ graceful-fs.js:78:16         在FSReqWrap.readFileAfterClose [完成时](fs.js:511:3)      @多主体

"webpack --config --display-error-details ./webpack.config.js"

const webpack = require('webpack');
const merge = require('webpack-merge');
const path = require('path');

var config = {
    entry:path.resolve(__dirname,'src/plugin.js'),
    output: {
      path: path.resolve( __dirname,'/dist/')
    },
    module: {
      rules: [  {
        test: /\.js$/,
        loader: 'babel-loader',
        include: __dirname,
        exclude: /node_modules/
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      } ]
    },resolve: {
      extensions: ['.vue', '.js', '.jsx','']
    },plugins:[            new webpack.optimize.UglifyJsPlugin( {
      minimize : true,
      sourceMap : false,
      mangle: true,
      compress: {
        warnings: false
      }
    } )]
  };
  config.node={
    fs:'empty'
  };
  module.exports = [

    merge(config, {
        entry: path.resolve(__dirname,'src/plugin.js'),
        output: {
          filename: 'loader.min.js',
          libraryTarget: 'window',
          library: 'Loader',
        }
      }),
      merge(config, {
        entry: path.resolve(__dirname , 'src/Loader.vue'),
        output: {
          filename: 'loader.js',
          libraryTarget: 'umd',
          library: 'Loader',
          umdNamedDefine: true
        }
      })
    // Config 1: For browser environment
    // merge(commonConfig, {
    // }),
    // Config 2: For Node-based development environments
    // merge(commonConfig, {
    // })
  ];

1 个答案:

答案 0 :(得分:0)

添加

const VueLoaderPlugin = require('vue-loader/lib/plugin')

位于Webpack配置的顶部,然后

new VueLoaderPlugin()

在您的插件部分。

对于样式块,添加:

      // this will apply to both plain `.css` files
      // AND `<style>` blocks in `.vue` files
      {
        test: /\.css$/,
        use: [
          'vue-style-loader',
          'css-loader'
        ]
      }

您也可以尝试:

  extensions: ['', '.vue', '.js', '.jsx']

我已经看到订单成为问题。