typescript - Tetherin käyttäminen Webpackin kanssa (Angular CLI)
Kehitän projektia käyttäen Angular CLI:tä. Joten asensin tetherin komennolla npm install tether --save ja importoin riippuvuuden tiedostossa app.component.ts käyttämällä import * as Tether from 'tether'.
Kun yritän alustaa Tetherin komennolla new Tether({ ... }), konsoliin tulee seuraava virheilmoitus:
POIKKEUS: WEBPACK_IMPORTED_MODULE_4_tether ei ole konstruktori
Jos tulostan Tether-muuttujan käyttämällä console.log(Tether), se antaa minulle sen, mikä vaikuttaa tyhjältä objektilta.
Voisitteko auttaa minua? En ole koskaan käyttänyt enkä TypeScriptiä enkä Webpackia ennen, joten pahoittelen, jos jätän jotain ilmiselvää huomaamatta.
Vastaus #1
Jos käytät bootstrap4:ää, tether.js on jo riippuvuus. Tämä saattaa toimia
Angular-clin käyttö
Asenna ensin Bootstrap npm:stä:
npm install bootstrap@next
Then add the needed script files to angular-cli.json --> scripts:
"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
],
Finally add the Bootstrap CSS to the angular-cli.json --> styles array:
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.css",
"styles.css"`enter code here`
],
Restart ng serve if you're running it, and Bootstrap 4 should be working on your app.
Webpackille
Jos käytät webpackia:
Määritä bootstrap-loader ohjeiden mukaisesti;
Asenna tether.js npm:n kautta;
Lisää tether.js webpackin ProvidePlugin-laajennukseen:
plugins: [
<... your plugins here>,
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"window.Tether": 'tether'
})
]
Bootstrap 4 ei enää käytä tunnistetta window.tether
Note that using Bootstrap 4.0.0-alpha.6,
Bootstrap ei enää tarkista "window.Tether", vaan globaalia muuttujaa "Tether", joten webpack-konfiguraatiosta tulee
plugins: [
<... your plugins here>,
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"Tether": 'tether'
})
]
Vastaus #2
Koska käytät Angular-cli:tä, sinun täytyy lisätä se angular-cli.json-tiedostoosi
Sisällytä se tiedostoosi (angular-cli.json) scripts-taulukon alle:
"scripts": [
"other/scripts/you've used"
"../node_modules/tether/dist/js/tether.min.js",
"../node_modules/tether-shepherd/dist/js/shepherd.min.js"
],
Lisää CSS tyyleihin.
Toivottavasti tämä onnistuu.
