Как исправить: Angular / Ionic v4 «Не удается найти таблицу стилей для импорта» из библиотеки в проекте monorepo - PullRequest
0 голосов
/ 09 июля 2019

У меня есть монорепроект, который включает в себя библиотеку, несколько проектов и основной проект.Мой ионный проект находится в папке projects.

Я не могу собрать свой ионный проект (ionic build или ng build), поскольку он импортирует модуль из основного проекта (src/), который импортирует файл sass из третьего проекта в папке libs/,

При сборке с ionic build появляется сообщение об ошибке:

"Не удается найти таблицу стилей для импорта."

@import 'libs/...';

КогдаЯ создаю с помощью ng-cli, я получаю ошибки для каждой из ссылок на файлы sass, импортированные из libs/..., по-видимому, повсюду в проекте, даже файлы / модули, которые не импортированы в этом проекте.

У меня нет проблем с созданием других проектов, которые импортируются из папки.

Файл package.json внутри папки ионного проекта содержит этот фрагмент:

"config": {
    "ionic_webpack": "./webpack.config.js",
    "ionic_sass": "./sass.config.js",
    "ionic_source_map_type": "source-map"
  },

Моя пользовательская конфигурация вставлена ​​ниже, я пробовал варианты включения ../../ или нет, изапуск ionic build как из корневого каталога, так и из корня проекта:

const useDefaultConfig = require('@ionic/app-scripts/config/sass.config.js');

useDefaultConfig.includePaths.push('libs/path/to/assets/scss');
useDefaultConfig.includePaths.push('libs/path/to/assets/scss/partials');
useDefaultConfig.includePaths.push('../../libs/path/to/assets/scss');
useDefaultConfig.includePaths.push('../../libs/path/to/assets/scss/partials');

useDefaultConfig.includePaths.push('dist/path/to/assets/scss');
useDefaultConfig.includePaths.push('dist/path/to/assets/scss/partials');
useDefaultConfig.includePaths.push('../../dist/path/to/assets/scss');
useDefaultConfig.includePaths.push('../../dist/path/to/assets/scss/partials');

module.exports = useDefaultConfig;

Я также попытался сделать

module.exports = function(){ return useDefualtConfig; };

Я добавил пути к stylePreprocessorOptions.includePaths в разделе проекта в разделеangular.json файл выглядит так:

"stylePreprocessorOptions": {
    "includePaths": [
        "libs/path",
        "libs/path/assets/scss",
        "libs/path/assets/scss/partials",
        "dist/path",
        "dist/path/assets/scss",
        "dist/path/assets/scss/partials"
    ]
},

Я также включил пути в tsconfig.app.json и tsconfig.json.

...