C'è un file javascript che ho bisogno di usare nel mio progetto come dipendenza. Non ha un repository github, non è su bower o npm, vive solo qui.Shimming di un pacchetto con Webpack
http://a.klaviyo.com/media/js/learnmarklet.js
posso installarlo con pergolato con:
bower install http://a.klaviyo.com/media/js/learnmarklet.js --save
So che sarà poi vivere nel mio progetto:
./bower_components/learnmarklet/index.js
E so che attribuisce una variabile chiamato _learnq
all'oggetto della finestra globale.
Quello che voglio è semplicemente questo.
var _learnq = require("klaviyo")
ho bisogno di alias klaviyo
qualcosa di simile.
{
"klaviyo": "./bower_components/learnmarklet/index.js"
}
E "shim" un'esportazione della variabile _learnq
come questa.
{
"klaviyo": "_learnq"
}
Come posso fare questo con il webpack?
Questo è quello che ho provato, questo è ciò che assomiglia al mio webpack.config.js
.
module.exports = {
resolve:{
alias:{
"klaviyo": "./bower_components/learnmarklet/index.js"
}
},
externals: {
klaviyo: "_learnq"
}
}
Sono felice di accettare questo come risposta. Credo che dovrebbe funzionare. Sto ricevendo alcuni strani errori dalla mia parte a causa del modo in cui questo script è stato creato. È apparentemente in cerca di pacchetti nodejs fs, file e sistema https://gist.github.com/reggi/628736bdb70a2a98deae – ThomasReggi
Ahh che sicuramente dipenderà dall'utilizzo. Se il codice dipende dal filesystem per qualcosa di critico, la libreria potrebbe semplicemente essere inutilizzabile nel browser. – loganfsmyth
No! È per il browser! Ha solo requisiti condizionali per quando viene eseguito all'interno del nodo. Quando vengono eseguiti all'interno del pacchetto Web, tali condizioni si interrompono perché si tratta di un ambiente CommonJS. – ThomasReggi