Ta odpowiedź jest jedynie podsumowaniem dwóch pomocny innych odpowiedzi: Answer 1, Answer 2
Po pierwsze, lepiej wiedzieć, że jquery-ui-dist
i jquery-ui-bundle
nie są utrzymywane przez zespół jquery-ui. Więc prawdopodobnie będziesz chciał tego unikać. Niemniej jednak, z jquery-ui w wersji 1.11 można wymagać/importować AMD, a od wersji 1.12 można użyć oficjalnego pakietu z npm.
Roztwór 1:
Korzystnym sposobem jest następnie importowania część jQuery interfejsu użytkownika, takich jak:
import 'jquery-ui/ui/widgets/draggable';
Jedyną wadą jest to, że jeśli wcześniej stosowane import 'jquery-ui'
, teraz muszą importuj poszczególne moduły, których chcesz użyć.Ale to jest lepsze, ponieważ będzie tylko pakować import, który naprawdę potrzebujesz.
Sprawdź 1.11 AMD support documentation i 1.12 npm documentation na swojej stronie.
Rozwiązanie 2:
Ale, jeśli z jakiegoś powodu chcesz używać jednego globalnego importu jQuery-UI, trzeba będzie dostosować WebPACK config:
pierwsze, zapewnić WebPack wie o jQuery aliasy:
...
plugins: [
new webpack.ProvidePlugin({
'$':'jquery',
'jQuery':'jquery',
'window.jQuery':'jquery',
'global.jQuery': 'jquery'
}),
...
Następnie pomaga WebPack rozwiązywania jQuery-UI js lokalizację:
resolve : {
alias: {
// bind version of jquery-ui
"jquery-ui": "jquery-ui/jquery-ui.js",
// bind to modules;
modules: path.join(__dirname, "node_modules"),
Następnie zapewnić jquery-ui jest załadowany tak szybko jak to możliwe (może podczas uruchamiania?)
var $ = require("jquery"),
require("jquery-ui");
Jeśli chcesz użyć motywu z jQuery UI, będziesz musiał ustawić CSS-ładowarka i odpowiednio do pliku. (Nie zapomnij zainstalować te ładowarki):
module: {
loaders: [
{ test: /\.css$/, loader: "style!css" },
{ test: /\.(jpe?g|png|gif)$/i, loader:"file" },
i poniżej ciebie importu jQuery i jQuery-ui po prostu dodają:
import 'modules/jquery-ui/themes/black-tie/jquery-ui.css';
import 'modules/jquery-ui/themes/black-tie/jquery-ui.theme.css';
Możesz dołączyć tslint.json? Nadal nie jest jasne, dlaczego uważasz, że są one kompilowane w tej kolejności. –
Rozważ pokazanie tego w swoim pytaniu. Podaj także, w jaki sposób kompilujesz kod (wersja TypeScript i flagi, jeśli je posiadasz). –
Czy używasz System.JS do ładowania modułów CommonJS? Zobacz: https://stackoverflow.com/questions/44929021/import-json-file-typescript-keeps-saying-cannot-find-module/44929550#44929550 Jeśli użyjesz tego zamówienia, nie będzie już ważne, co rozwiązuje System.import wymagać. – JGFMK