C:\Users\stuar\Github\DWC3.5.0>npm run build-plugin ../DuetLapse3/plugin/3.5.beta > duetwebcontrol@3.5.0-beta.3 build-plugin > node scripts/build-plugin.js ../DuetLapse3/plugin/3.5.beta All browser targets in the browserslist configuration have supported ES module. Therefore we don't build two separate bundles for differential loading. | Building for production...[BABEL] Note: The code generator has deoptimised the styling of C:\Users\stuar\Github\DWC3.5.0\node_modules\vuetify\dist\vuetify.js as it exceeds the max of 500KB. \ Building for production... ERROR Failed to compile with 21 errors 12:21:26 PM error in ./src/plugins/DuetLapse3/DuetLapse3.vue?vue&type=script&lang=ts& Module not found: Error: Can't resolve '../../utils/path.js' in 'C:\Users\stuar\Github\DWC3.5.0\src\plugins\DuetLapse3' error in ./src/plugins/DuetLapse3/DuetLapse3.vue?vue&type=script&lang=ts& Module not found: Error: Can't resolve '../../utils/errors.js' in 'C:\Users\stuar\Github\DWC3.5.0\src\plugins\DuetLapse3' error in src/plugins/DuetLapse3/DuetLapse3.vue:44:43 TS2339: Property 'systemDirectory' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 42 | //Load the DuetLapse3.config file 43 | try { > 44 | const setFileName = Path.combine(this.systemDirectory, configFile); | ^^^^^^^^^^^^^^^ 45 | const response = await this.machineDownload({ filename: setFileName, type: 'text', showSuccess: false, showError: false }); 46 | this.fileContent = await response; 47 | //get the ip address error in src/plugins/DuetLapse3/DuetLapse3.vue:46:10 TS2339: Property 'fileContent' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 44 | const setFileName = Path.combine(this.systemDirectory, configFile); 45 | const response = await this.machineDownload({ filename: setFileName, type: 'text', showSuccess: false, showError: false }); > 46 | this.fileContent = await response; | ^^^^^^^^^^^ 47 | //get the ip address 48 | let pattern = /-duet.*(?:$|\n)/i; 49 | let match = this.fileContent.match(pattern).toString(); error in src/plugins/DuetLapse3/DuetLapse3.vue:49:22 TS2339: Property 'fileContent' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 47 | //get the ip address 48 | let pattern = /-duet.*(?:$|\n)/i; > 49 | let match = this.fileContent.match(pattern).toString(); | ^^^^^^^^^^^ 50 | this.myurl = "http://"+ match.replace('-duet', '').trim(); 51 | // get the port 52 | pattern = /-port.*(?:$|\n)/i; error in src/plugins/DuetLapse3/DuetLapse3.vue:50:10 TS2339: Property 'myurl' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 48 | let pattern = /-duet.*(?:$|\n)/i; 49 | let match = this.fileContent.match(pattern).toString(); > 50 | this.myurl = "http://"+ match.replace('-duet', '').trim(); | ^^^^^ 51 | // get the port 52 | pattern = /-port.*(?:$|\n)/i; 53 | match = this.fileContent.match(pattern).toString(); error in src/plugins/DuetLapse3/DuetLapse3.vue:53:18 TS2339: Property 'fileContent' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 51 | // get the port 52 | pattern = /-port.*(?:$|\n)/i; > 53 | match = this.fileContent.match(pattern).toString(); | ^^^^^^^^^^^ 54 | this.myurl = this.myurl + ":" + match.replace('-port', '').trim(); 55 | console.log('DuetLapse url is ' + this.myurl); 56 | error in src/plugins/DuetLapse3/DuetLapse3.vue:54:10 TS2339: Property 'myurl' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 52 | pattern = /-port.*(?:$|\n)/i; 53 | match = this.fileContent.match(pattern).toString(); > 54 | this.myurl = this.myurl + ":" + match.replace('-port', '').trim(); | ^^^^^ 55 | console.log('DuetLapse url is ' + this.myurl); 56 | 57 | } catch (e) { error in src/plugins/DuetLapse3/DuetLapse3.vue:54:23 TS2339: Property 'myurl' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 52 | pattern = /-port.*(?:$|\n)/i; 53 | match = this.fileContent.match(pattern).toString(); > 54 | this.myurl = this.myurl + ":" + match.replace('-port', '').trim(); | ^^^^^ 55 | console.log('DuetLapse url is ' + this.myurl); 56 | 57 | } catch (e) { error in src/plugins/DuetLapse3/DuetLapse3.vue:55:44 TS2339: Property 'myurl' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 53 | match = this.fileContent.match(pattern).toString(); 54 | this.myurl = this.myurl + ":" + match.replace('-port', '').trim(); > 55 | console.log('DuetLapse url is ' + this.myurl); | ^^^^^ 56 | 57 | } catch (e) { 58 | if (!(e instanceof DisconnectedError) && !(e instanceof OperationCancelledError)) { error in src/plugins/DuetLapse3/DuetLapse3.vue:69:11 TS2339: Property 'showBottomNavigation' does not exist on type '{ loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }'. 67 | tmpHeight = tmpHeight - window.document.getElementById("global-container")!.offsetHeight; 68 | } > 69 | if(this.showBottomNavigation) { | ^^^^^^^^^^^^^^^^^^^^ 70 | tmpHeight = tmpHeight - 56; 71 | } 72 | return tmpHeight; error in src/plugins/DuetLapse3/DuetLapse3.vue:79:22 TS7006: Parameter 'state' implicitly has an 'any' type. 77 | computed:{ 78 | ...mapState('machine/model', { > 79 | systemDirectory: (state) => state.directories.system | ^^^^^ 80 | }), 81 | showBottomNavigation(): boolean { 82 | return this.$vuetify.breakpoint.mobile && !this.$vuetify.breakpoint.xsOnly && this.$store.state.settings.bottomNavigation; error in src/plugins/DuetLapse3/DuetLapse3.vue:82:15 TS2339: Property '$vuetify' does not exist on type '{ showBottomNavigation(): boolean; theurl(): any; theheight(): any; systemDirectory: () => any; }'. 80 | }), 81 | showBottomNavigation(): boolean { > 82 | return this.$vuetify.breakpoint.mobile && !this.$vuetify.breakpoint.xsOnly && this.$store.state.settings.bottomNavigation; | ^^^^^^^^ 83 | }, 84 | 85 | theurl() { error in src/plugins/DuetLapse3/DuetLapse3.vue:82:51 TS2339: Property '$vuetify' does not exist on type '{ showBottomNavigation(): boolean; theurl(): any; theheight(): any; systemDirectory: () => any; }'. 80 | }), 81 | showBottomNavigation(): boolean { > 82 | return this.$vuetify.breakpoint.mobile && !this.$vuetify.breakpoint.xsOnly && this.$store.state.settings.bottomNavigation; | ^^^^^^^^ 83 | }, 84 | 85 | theurl() { error in src/plugins/DuetLapse3/DuetLapse3.vue:82:86 TS2339: Property '$store' does not exist on type '{ showBottomNavigation(): boolean; theurl(): any; theheight(): any; systemDirectory: () => any; }'. 80 | }), 81 | showBottomNavigation(): boolean { > 82 | return this.$vuetify.breakpoint.mobile && !this.$vuetify.breakpoint.xsOnly && this.$store.state.settings.bottomNavigation; | ^^^^^^ 83 | }, 84 | 85 | theurl() { error in src/plugins/DuetLapse3/DuetLapse3.vue:85:3 TS7023: 'theurl' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions. 83 | }, 84 | > 85 | theurl() { | ^^^^^^ 86 | return this.myurl; 87 | }, 88 | theheight() { error in src/plugins/DuetLapse3/DuetLapse3.vue:86:16 TS2339: Property 'myurl' does not exist on type '{ showBottomNavigation(): boolean; theurl(): any; theheight(): any; systemDirectory: () => any; }'. 84 | 85 | theurl() { > 86 | return this.myurl; | ^^^^^ 87 | }, 88 | theheight() { 89 | return this.tmpHeight; error in src/plugins/DuetLapse3/DuetLapse3.vue:88:3 TS7023: 'theheight' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions. 86 | return this.myurl; 87 | }, > 88 | theheight() { | ^^^^^^^^^ 89 | return this.tmpHeight; 90 | } 91 | }, error in src/plugins/DuetLapse3/DuetLapse3.vue:89:16 TS2339: Property 'tmpHeight' does not exist on type '{ showBottomNavigation(): boolean; theurl(): any; theheight(): any; systemDirectory: () => any; }'. 87 | }, 88 | theheight() { > 89 | return this.tmpHeight; | ^^^^^^^^^ 90 | } 91 | }, 92 | mounted() { error in src/plugins/DuetLapse3/DuetLapse3.vue:93:8 TS2339: Property 'loadSettingsFromFile' does not exist on type '{ data(): { version: string; myurl: string; tmpHeight: string; }; methods: { loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }; computed: { ...; }; mounted(): void; }'. 91 | }, 92 | mounted() { > 93 | this.loadSettingsFromFile(); | ^^^^^^^^^^^^^^^^^^^^ 94 | this.getAvailScreenHeight(); 95 | }, 96 | error in src/plugins/DuetLapse3/DuetLapse3.vue:94:8 TS2339: Property 'getAvailScreenHeight' does not exist on type '{ data(): { version: string; myurl: string; tmpHeight: string; }; methods: { loadSettingsFromFile(): Promise; getAvailScreenHeight(): number; machineDownload: ActionMethod; }; computed: { ...; }; mounted(): void; }'. 92 | mounted() { 93 | this.loadSettingsFromFile(); > 94 | this.getAvailScreenHeight(); | ^^^^^^^^^^^^^^^^^^^^ 95 | }, 96 | 97 | ERROR Error: Build failed with errors. Error: Build failed with errors. at C:\Users\stuar\Github\DWC3.5.0\node_modules\@vue\cli-service\lib\commands\build\index.js:207:23 at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\webpack.js:148:8 at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\HookWebpackError.js:68:3 at Hook.eval [as callAsync] (eval at create (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), :6:1) at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14) at Cache.shutdown (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Cache.js:150:23) at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:1228:15 at Hook.eval [as callAsync] (eval at create (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), :6:1) at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14) at Compiler.close (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:1221:23) at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\webpack.js:147:16 at finalCallback (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:441:32) at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:458:13 at Hook.eval [as callAsync] (eval at create (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), :33:1) at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14) at onCompiled (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:456:21) at C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\lib\Compiler.js:1199:17 at eval (eval at create (C:\Users\stuar\Github\DWC3.5.0\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), :14:1) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)