Общий JS как импорт в angular - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть пакет "citation- js", который использует общий импорт JS style

для его использования в angular Я установил @ types / node и затем добавил узел в массив типов в tsconfig.app. json

    {
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": ["node"],
"resolveJsonModule": true
  },
  "files": ["src/main.ts", "src/polyfills.ts"],
  "include": ["src/**/*.d.ts"]
}

Я начал тестировать пакет в app.component.ts с помощью

  ngOnInit() {
    let example = new Cite("Q21972834");

    let output = example.format("bibliography", {
      format: "html",
      template: "apa",
      lang: "en-US",
    });

    console.log(output);
  }

После запуска я все еще получаю ошибку

ERROR in ./node_modules/@citation-js/plugin-ris/lib-mjs/spec/mixed.js
Module not found: Error: Can't resolve './additions' in '/home/inkant/citationjs/node_modules/@citation-js/plugin-ris/lib-mjs/spec'

Итак, я посмотрел на пакет, в котором есть

import ADDITIONS from './additions';

Я заметил, что "./additions" равен JSON file, а не JS module. Теперь, что я могу сделать, чтобы использовать этот пакет.

Мне кажется, что есть разница в импорте между модулями Common JS и ES6.

1 Ответ

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

Я нашел способ напрямую импортировать JSON в машинопись. Пожалуйста, добавьте два предложенных изменения в ваш файл tsconfig. json / tsconfig.app. json file:

  "compilerOptions": {
    "resolveJsonModule": true,
    "esModuleInterop": true
  }

citation- js, однако он был разработан с Browserify и не похож на компилятор Typescript , Он плохо работает с Webpack, который является стандартным пакетом для Angular. Поэтому, чтобы использовать его с angular:

На компоненте, который я использовал window.require вместо импорта или обычного запроса снова, потому что я не хотел, чтобы машинопись пыталась скомпилировать цитату - js. Я видел в верхней части цитаты. js она включала реализацию require, которая может быть артефактом browserify. Таким образом, суть в том, чтобы отключить компиляцию машинописи, включив ее в активы

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