最近,我不得不將我們的jquery版本從1.x更新到3.5。同時,我也不得不將Jquery UI更新到1.12。我利用這個機會將我們的js依賴項作為node_modules匯入,而不是僅僅在我們的資源庫中擁有一個副本。
當在 IDE 中運行我們的 WebApp 時,一切運作正常,符合預期。然而,當我用 pyInstaller 構建 .exe 時(運行 grunt 任務將所有內容縮減為單個 app.min.js),我得到錯誤資訊 "g.sortable 不是一個函式"。同樣的問題也發生在jquery. transit.
上。package.json:
{<
"dependencies": {
// snip
"jquery": "3.5.1",
"jquery-ui": "1.12.1"、
"jquery.iframe-transport": "1.0.0",/span>
"jquery. transit": "0.9.12",
}
}
configuration.js:
require.config({
paths: {
// snip: {
'ui.sortable': '<...>/3rdparty/js/node_modules/angular-ui-sortable/dist/sortable'。
'jquery'。'<...>/3rdparty/js/node_modules/jquery/dist/jquery',
'jquery. transit'。'<...>/3rdparty/js/node_modules/jquery. transit/jquery. transit',
'jquery-ui'。'<...>/3rdparty/js/node_modules/jquery-ui-dist/jquery-ui'。
}
})
Gruntfile.js:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('< ...>/3rdparty/js/package.json'),
requirejs: {
compile: {
options: {
baseUrl: '<...>/js'。
mainConfigFile: '<...>/js/configuration.js'。
optimize: 'none', 'none'。
}
}
},
ts: { ... },
sass: { ... }。
uglify: {
'js': {
files: [
{
expand: true,
src: [
'app/**/*.js'。
'!app/**/3rdparty/**/*.js'。
'!app/<...>/js/configuration.js'。
'!app/<...>/js/patch.js'.
]
}
],
options: {
compress: true,
mangle: false, mangle:
}
}
}
});
};
同樣,這些javascript檔案似乎可以正常作業,因為當我在pycharm中啟動webservice時沒有問題。只有當我編譯和最小化所有內容時,jquery UI部件才會停止作業。其他的外部庫,我開始使用npm,它們作業得非常好。
在這一點上,我有點毫無頭緒。
uj5u.com熱心網友回復:
所以,解決我的問題的方法就是
import 'jquery. transit'/span>。
import 'jquery.ui';
在我的一個TypeScript檔案中。顯然,在整個專案中,這種情況從未在任何地方發生過。在我更新之前,它是有效的,因為我們使用的jqueryUI版本將AMD的部分注釋掉了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/319934.html
標籤:
