2017-09-25 1 views
1

Est-il possible d'utiliser knockoutjs avec webpack? En ce moment, je viens de ce qui suit dans mon htmlwebpack et knockoutjs sans "externals"?

<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script> 

avec une entrée dans la configuration webpack comme si

externals: { 
    'ko': 'ko' 
} 

Je place que d'utiliser quelle que soit la version de ko J'ai installé avec yarn .

Il semble être lié ce this line dans knockoutjs, et il semble y avoir une sorte d'indice pour une solution de rechange pour ce over here.

Idéalement, je voudrais encore utiliser une balise de script (injecté par webpack dans le html), mais que je pense que je peux comprendre moi-même si seulement knock-out pourrait être chargé de node_modules en quelque sorte ...

Comment puis-je require knockout installé avec du fil sans l'entrée externals dans ma configuration webpack?

Répondre

1

Grand succès. En suivant le lien dans la question j'ai réussi à rouler avec l'entrée suivante dans la configuration webpack

module: { 
    loaders: [ 
    { 
     test: /knockout.build.output.knockout-latest\.js/, 
     loader: "imports?require=>false" 
    } 
    ] 
} 

Et puis je peux require('knockout')

+0

il est source de confusion. J'ai mis knockout dans la section module.exports.entry et il travaille avec require ('knockout'). Aucun chargeur requis. Pouvez-vous expliquer pourquoi cela n'a pas fonctionné pour vous? –

-1

knock-out Put dans la section de module.exports.entry et il fonctionne . Tout ce dont vous avez besoin est de l'inclure dans votre fichier js comme vous le souhaitez ('knockout').

webpack.config.js

module.exports.entry = { 
    vendor: [ 
     'jquery', 
     'knockout', 
     'bootstrap'    
    ], 
    emal_patient_form : [ 
     path.resolve(__dirname, 'resources/js/EmalPatientForm.js') 
    ] 
}; 
... 

... /resources/js/EmalPatientForm.js

... 
const ko = require("knockout"); 
const myViewModel = { 
    error_messsage: ko.observable(''), 
    alert: ko.observable('') 
}; 
ko.applyBindings(myViewModel); 
... 
+0

cool! Pouvez-vous donner un exemple? – vidstige

+0

exemple est ajouté. –

+0

ne fonctionne pas pour moi. J'ai essayé dans un nouveau projet, en faisant «fil ajouter knockout» – vidstige