сборка vue из веб-пакета; SyntaxError: неожиданный токен - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать библиотеку vue, опубликованную в npm. Библиотека снабжена расширением файла ". vue", а не общим js.)

При сборке библиотеки с помощью веб-пакета возникает ошибка, подобная следующей.

(function (exports, require, module, __filename, __dirname) { <template>
                                                              ^

SyntaxError: Unexpected token <
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:20:18)

пакет. json

  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vue-class-component": "^7.2.3",
    "vue-loader": "^15.9.1",
    "vue-property-decorator": "^8.4.1",
    "webpack": "^4.42.1",
    "webpack-cli": "^3.3.11",
    "webpack-node-externals": "^1.7.2"
  },
  "dependencies": {
    "vue-components": "^1.0",
    "vue": "^2.6.11",
    "vue-server-renderer": "^2.6.11"
  }

webpack.config. js

const path = require('path');
const nodeExternals = require('webpack-node-externals');
const {TsConfigPathsPlugin} = require('awesome-typescript-loader');

module.exports = {
  mode: 'development',
  entry: './src/server.js',
  target: 'node',
  externals: [nodeExternals()],
  node: {
    __filename: true,
    __dirname: true
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {}
      },
    ]
  },
  plugins: [
  ],
  resolve: {
    extensions: ['.js', '.vue', '.json']
  },
  output: {
    filename: 'server.js',
    path: path.resolve(__dirname, './dist'),
    libraryTarget: 'commonjs2'
  }
}

сервер. js

import {createRenderer} from 'vue-server-renderer';
import Vue from 'vue';
import Button from 'vue-components/Button.vue';

function sample() {
  const app = new Vue({
    template: `<div><Button/></div>`,
    components: {
      Button
    }
  });

  createRenderer().renderToString(app, (err, html) => {
    console.log(html);
  });
}

sample();

Я думаю Вероятно, это связано с тем, что в файле node_modules есть файл vue, но я не уверен. Как я могу решить эту проблему?

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