Как заставить узлы работать в проекте AngularJS?
Я хочу использовать Smart App Banner в своем проекте AngularJS, smart-app-banner
использования npm
управлять собой.
Руководство очень просто и все в одном файле HTML. Однако в реальном проекте нам нужно поместить каждый файл в нужное место.
- CSS (мой проект использует
scss
)
В sample
есть одна строка в head
в HTML-файл:
<link rel="stylesheet" href="node_modules/smart-app-banner/smart-app-banner.css" type="text/css" media="screen">
Так что в моем проекте я импортирую этот файл CSS в app.scss
:
@import "node_modules/smart-app-banner/smart-app-banner";
- JS (мой проект использует
ECMAScript 6
)
В sample
Есть две части для JS в body
в HTML-файл:
Первая часть:
<script src="node_modules/smart-app-banner/smart-app-banner.js"></script>
Так что в моем проекте я импортирую этот файл JS в app.js
:
import "smart-app-banner";
Вторая часть:
<script type="text/javascript">
new SmartBanner({
daysHidden: 15, // days to hide banner after close button is clicked (defaults to 15)
daysReminder: 90, // days to hide banner after "VIEW" button is clicked (defaults to 90)
appStoreLanguage: 'us', // language code for the App Store (defaults to user's browser language)
title: 'MyPage',
author: 'MyCompany LLC',
button: 'VIEW',
store: {
ios: 'On the App Store',
android: 'In Google Play',
windows: 'In Windows store'
},
price: {
ios: 'FREE',
android: 'FREE',
windows: 'FREE'
}
// , force: 'ios' // Uncomment for platform emulation
});
</script>
Поэтому в моем проекте я создаю новый файл JS под названием smart-banner.js
в том же каталоге, что и app.js
файл, и вставьте этот код, затем импортируйте файл js в app.js
import "./smart-banner";
смарт-banner.js:
new SmartBanner({
daysHidden: 15, // days to hide banner after close button is clicked (defaults to 15)
daysReminder: 90, // days to hide banner after "VIEW" button is clicked (defaults to 90)
appStoreLanguage: 'us', // language code for the App Store (defaults to user's browser language)
title: 'MyPage',
author: 'MyCompany LLC',
button: 'VIEW',
store: {
ios: 'On the App Store',
android: 'In Google Play',
windows: 'In Windows store'
},
price: {
ios: 'FREE',
android: 'FREE',
windows: 'FREE'
}
// , force: 'ios' // Uncomment for platform emulation
});
Но это не работает. Баннер не отображался правильно. Какой-то шаг не так? Как проверить эти процессы шаг за шагом, чтобы убедиться, что каждый файл работает правильно?
1 ответ
Я нашел ответ. Проблема произошла при импорте файла JS.
Потому что это так ECMAScript 6
с babel
в документации сказано:
Импортируйте все содержимое модуля. Это вставит myModule в текущую область, содержащую все экспортированные привязки из "my-module.js".
import * as myModule from "my-module";
Импортировать одного члена модуля. Это вставит myMember в текущую область.
import {myMember} from "my-module";
Импортируйте весь модуль только для побочных эффектов, без импорта каких-либо привязок.
import "my-module";
Так что это не сработало, если только импортировать файл js. Вместо этого нужно импортировать класс
import SmartBanner from smart-app-banner;
Более того, вы не можете поместить импорт в app.js
, вам нужно положить его в файл js, который вы используете класс.