vue-cli 3.1.0 как импортировать модуль commonjs в компонент машинописи - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь импортировать некоторый устаревший код в формате commonjs в модуль перевода машинописного текста, который связан с проектом vanilla-ish, созданным vue-cli 3.1.0. Я получаю ошибку из веб-пакета. Похоже, что компонент машинописного текста хочет использовать модули в формате ES6:

ReferenceError: exports is not defined
cjs_module.js:3
    at Module../src/cjs_module.js (/Users/skelly/dev/nimbee/edu/js/app/wmadmin_dashboard/src/cjs_module.js:3:1)
    at __webpack_require__ (http://10.0.9.2:8080/app.js:725:30)

tsconfig.json ниже:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "noUnusedLocals": false,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "composite": true
  },
  "lib": [
    "esnext",
    "dom",
    "dom.iterable",
    "scripthost"
  ],
  "exclude": [
    "node_modules"
  ]
}

В игре есть другие конфиги, такие как vue.config.js и babel.config.js. Я новичок в экосистеме Vue JS, так что спасибо за интересный вопрос.

Я должен добавить модуль, с которым я экспериментирую:

// works
export const a = 'es6 module';
// doesn't work
//exports.a= 'cjs_module';
var regexp = new RegExp('blah');

Синтаксис импорта в машинописном тексте, который я использую:

const cjs_module = require('./cjs_module');
console.log(cjs_module.a);    
...