Использовать модуль Path Path с углом 6 - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь использовать модуль Path в проекте Angular 6.

Я нашел этот пост, чтобы решить проблему:

https://gist.github.com/niespodd/1fa82da6f8c901d1c33d2fcbb762947d

там написаноЧтобы добавить скрипт:

const fs = require('fs');
const f = 'node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js';

fs.readFile(f, 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  var result = data.replace(/node: false/g, 'node: {crypto: true, stream: true}');

  fs.writeFile(f, result, 'utf8', function (err) {
    if (err) return console.log(err);
  });
});

И объявите его в package.json:

{...
  "scripts": {
    "postinstall": "node patch.js",
    ...
  }
}

Но когда я пытаюсь использовать его в сервисе, просто импортируйте его так:

import {join} from 'path';

В нем говорится, что модуль Path не может быть найден.


Как я могу исправить это?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Интересная проблема.

Мне удалось запустить модуль Path в моем проекте Angular.

Вот шаги. Я использую узел 8, угловой 6.

1: путь установки.

  npm install path 

Это точная копия 'пути' NodeJSмодуль опубликован в реестре NPM.

2, я также установил @ types / node, так как в Angular мы используем typcript.Хотя позже я удалил этот модуль и модуль пути, кажется, все еще работает.

3, запустите приведенный выше сценарий, используя

node patch.js

Я вручную запустил его и перешел в 'node_modules / @ angular-devkit /build-angular / src / angular-cli-files / models / webpack-configs / browser.js ', чтобы проверить, что файл действительно изменился.

4, я положил

  import {join} from 'path';

в одинмоего файла component.ts

 let x = join('Users', 'Refsnes', '..', 'demo_path.js');
    console.log("-------------------------------------------------");
    console.log(x);

в функции onInit () компонента.

и запуска "ng serve" Я увидел ожидаемый вывод в консоли при загрузке веб-страницы.

-------------------------------------------------
Users/demo_path.js

Так что этот метод работает.Я не уверен, какой шаг ты сделал неправильно.Мое предположение будет первым шагом, как я пытался, если не сделать шаг 3, есть другое сообщение об ошибке.Пожалуйста, проверьте папку node_modules, убедитесь, что папка пути существует, и переустановите ее, если необходимо.

0 голосов
/ 17 сентября 2018
  1. Убедитесь, что установлены типы узлов: npm install --save-dev @types/node
  2. Путь импорта: import * as path from 'path';
...