Ноти-библиотека имеет именованное AMD определение define('Noty',...)
вместо обычного анонимного определения.Это должно работать, но, похоже, мой недавний PR создал регрессию для cli-bundler на названном модуле AMD, или, возможно, новую ошибку на названном модуле AMD.
Я исправлю эту регрессию. Обновление, которое я сделал https://github.com/aurelia/cli/pull/1084
Чтобы обойти это сейчас,
- создайте еще один файл в вашем проекте
patch/noty.js
с содержимым:
define('noty',['Noty'],function(m){return m;});
Этот патч создает псевдоним от 'noty' до 'Noty'.
добавить к aurelia.json prepend, должно быть
после requirejs . существует другая проблема со значением по умолчанию main
lib/noty.js
:
ERROR [Bundle] Error: An error occurred while trying to read the map file at /Users/huocp/playground/nt/node_modules/noty/lib/es6-promise.map
Он пытается загрузить es6-promise.map, но такого файла нет.
Обновление: ошибка не остановит связывание.
{
"name": "vendor-bundle.js",
"prepend": [
"node_modules/requirejs/require.js",
// add this line after requirejs
"patch/noty.js"
],
"dependencies": [
"aurelia-bootstrapper",
"aurelia-loader-default",
"aurelia-pal-browser",
{
"name": "aurelia-testing",
"env": "dev"
},
"text",
// optionally override noty main path, only if you want to get rid of the annoying es6-promise.map error
{
"name": "noty",
"path": "../node_modules/noty",
"main": "lib/noty.min"
}
]
}
Тогда этот импорт работает,Я тестировал.
import * as Noty from 'noty';
Кстати, чтобы забыть о * as
, используйте рекомендованный Microsoft вариант компилятора esModuleInterop
.https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html