Я пытаюсь перенести свой проект Angular Universal с Angular v5 на v6
У меня есть служба, в которой я использую fs
для загрузки перевода на стороне сервера. Все хорошо работает с Angular v5.
В Angular v6, когда я запускаю npm run start
aka ng serve --proxy-config proxy.conf.json
, я сталкиваюсь со следующей ошибкой
ОШИБКА в ./src/providers/core/translate/translate-universal-loader.service.ts Модуль не найден: Ошибка: не удается разрешить "fs" в '/ Users / me / Documents / projects / myproject / src / sizes / core / translate '
В своей службе я объявляю fs
следующим образом:
declare var require: any;
const fs = require('fs');
Я тоже пытался объявить это следующим образом, но не помогло
import * as fs from 'fs';
Чтобы указать webpack игнорировать fs, я безуспешно пытался добавить в свой webpack.server.config.js
следующее:
node: {
fs: 'empty'
}
также пробовал с плагином webpack, тоже не увенчался успехом
new webpack.IgnorePlugin(/fs/)
но на самом деле, возможно, это не та конфигурация, которую использует ng serve
, но я не знаю, смогу ли я извлечь конфигурацию с помощью v6?
у кого-нибудь есть идея?
ОБНОВЛЕНИЕ
Если я объявлю fs как any
, это решит проблему для ng serve
, но, к сожалению, он не будет работать на стороне сервера после npm run build:ssr
и запуска npm run serve
. На стороне сервера я столкнусь со следующей ошибкой
ERROR ReferenceError: fs не определена
ps: мой проект следует структуре https://github.com/angular/universal-starter, config и зависимости
fs
,declare var fs: any;
- person John Velasquez   schedule 06.05.2018fs
- ›if(typeof window !== 'undefined')
- person John Velasquez   schedule 06.05.2018