Это потому, что указанный вами файл package.json
зависимости не имеет свойства schematics
, которое является путем к файлу определения схемы (файл JSON):
{
"name": "@candiman/website",
"version": "0.0.5",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0",
"@ng-bootstrap/ng-bootstrap": "^2.0.0",
"@fortawesome/angular-fontawesome": "0.1.0-9",
"@fortawesome/fontawesome-svg-core": "^1.2.0-11",
"@fortawesome/free-solid-svg-icons": "^5.1.0-8",
"@fortawesome/free-regular-svg-icons": "^5.1.0-8",
"@fortawesome/free-brands-svg-icons": "5.1.0-8",
"bootstrap": "^4.0.0"
},
"main": "bundles/candiman-website.umd.js",
"module": "fesm5/candiman-website.js",
"es2015": "fesm2015/candiman-website.js",
"esm5": "esm5/candiman-website.js",
"esm2015": "esm2015/candiman-website.js",
"fesm5": "fesm5/candiman-website.js",
"fesm2015": "fesm2015/candiman-website.js",
"typings": "candiman-website.d.ts",
"metadata": "candiman-website.metadata.json",
"sideEffects": false,
"dependencies": {
"tslib": "^1.9.0"
}
}
См. package.json
файл вашего пакета (на Unpkg) для получения дополнительной информации.
Ниже приведен пример того, как должны быть объявлены схемы вашего пакета:
{
"name": "@candiman/website",
"version": "0.0.5",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0",
"@ng-bootstrap/ng-bootstrap": "^2.0.0",
"@fortawesome/angular-fontawesome": "0.1.0-9",
"@fortawesome/fontawesome-svg-core": "^1.2.0-11",
"@fortawesome/free-solid-svg-icons": "^5.1.0-8",
"@fortawesome/free-regular-svg-icons": "^5.1.0-8",
"@fortawesome/free-brands-svg-icons": "5.1.0-8",
"bootstrap": "^4.0.0"
},
"schematics": "./path/to/schematics.json",
"dependencies": {
"tslib": "^1.9.0"
}
}
Что приведет к чему-то подобному при выполнении ng build project-name --prod
:
{
"name": "@candiman/website",
"version": "0.0.5",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0",
"@ng-bootstrap/ng-bootstrap": "^2.0.0",
"@fortawesome/angular-fontawesome": "0.1.0-9",
"@fortawesome/fontawesome-svg-core": "^1.2.0-11",
"@fortawesome/free-solid-svg-icons": "^5.1.0-8",
"@fortawesome/free-regular-svg-icons": "^5.1.0-8",
"@fortawesome/free-brands-svg-icons": "5.1.0-8",
"bootstrap": "^4.0.0"
},
"schematics": "./path/to/schematics.json",
"main": "bundles/candiman-website.umd.js",
"module": "fesm5/candiman-website.js",
"es2015": "fesm2015/candiman-website.js",
"esm5": "esm5/candiman-website.js",
"esm2015": "esm2015/candiman-website.js",
"fesm5": "fesm5/candiman-website.js",
"fesm2015": "fesm2015/candiman-website.js",
"typings": "candiman-website.d.ts",
"metadata": "candiman-website.metadata.json",
"sideEffects": false,
"dependencies": {
"tslib": "^1.9.0"
}
}
Один способ сделать это должно создать файл в lib/rails_extensions.rb
. Затем добавьте свои расширения как так:
class Array
def bring_me_food
# ...
end
def make_tea
# ...
end
end
class Hash
def rub_my_shoulders
# ...
end
end
Затем в config/environment.rb
, добавьте это:
require 'rails_extensions'
Ваш пробег с подвластными объектами может варьироваться.
По умолчанию, когда Вы звоните, "требуют", направляющие заглянут (из граничного источника направляющих):
поставщик lib приложения/сервисов приложения/помощников приложения/контроллеров приложения/моделей приложения/металла приложения
Для пользы простоты помещенной, файл в lib/, и требует его по имени в Вашем config/environment.rb, или можно поместить его в config/initializers/array_extension.rb, и это будет автоматически загружено.
Где я работаю, мы поместили все наши расширения базовой библиотеки Ruby в плагин и сохранили ее в (Rails.root/) vendor/plugins/utilities/lib/core_ext, и затем мы требуем конкретных номеров в init.rb плагина.
Другой способ освежевать эту кошку: если Вы говорите, хотите сохранить свои базовые расширения в Rails.root/core_ext, то можно добавить что путь как путь загрузки в блоке конфигурации в environment.rb:
Rails::Initializer.run do |config|
config.load_paths << 'core_ext'
end
Затем можно звонить, "требуют 'array_extension'" отовсюду, и он загрузится.
Просто поместите его в новый файл, например. array_extended.rb
class Array
def my_new_method()
...
end
end
После этого можно включать этот файл с require "array_extended.rb"
. Убедитесь, что Вы уже не переопределяете существующие методы, поскольку это может повредить другую функциональность.