如何使用 electron-react-boilerplate 正确设置 material-ui
How to properly set up material-ui with electron-react-boilerplate
我在使用 material-ui (v4.9.5) 库 运行 electron-react-boilerplate 时遇到问题。
重现:
- 关注installation tutorial
yarn add @material-ui/core
- 从库中添加一些小部件:
diff --git a/app/components/Home.tsx b/app/components/Home.tsx
index 20748ab..f4f9a21 100644
--- a/app/components/Home.tsx
+++ b/app/components/Home.tsx
@@ -1,11 +1,13 @@
import React from 'react';
import { Link } from 'react-router-dom';
+import { Button } from '@material-ui/core';
import routes from '../constants/routes.json';
import styles from './Home.css';
export default function Home() {
return (
<div className={styles.container} data-tid="container">
+ <Button>Hello</Button>
<h2>Home</h2>
<Link to={routes.COUNTER}>to Counter</Link>
</div>
现在当您 运行 yarn dev
时,一切都很好。然而,yarn start
产生:
init.ts:204 Unable to load preload script: /home/vasniktel/boiler-test/app/dist/renderer.prod.js
(anonymous) @ init.ts:204
init.ts:205 TypeError: Cannot use 'in' operator to search for 'ontouchstart' in null
at Module../app/index.tsx (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at n (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at module.exports../app/app.global.css (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at Object.<anonymous> (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at Object.<anonymous> (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:3)
at Module._compile (internal/modules/cjs/loader.js:880)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:892)
at Module.load (internal/modules/cjs/loader.js:735)
at Module._load (internal/modules/cjs/loader.js:648)
at Module._load (electron/js2c/asar.js:717)
(anonymous) @ init.ts:205
有什么办法可以解决这个问题吗?
似乎从 main.dev.ts
文件中删除这些行可以解决问题:
@@ -58,14 +58,9 @@ const createWindow = async () => {
show: false,
width: 1024,
height: 728,
- webPreferences:
- process.env.NODE_ENV === 'development' || process.env.E2E_BUILD === 'true'
- ? {
- nodeIntegration: true
- }
- : {
- preload: path.join(__dirname, 'dist/renderer.prod.js')
- }
+ webPreferences: {
+ nodeIntegration: true
+ }
});
我在使用 material-ui (v4.9.5) 库 运行 electron-react-boilerplate 时遇到问题。 重现:
- 关注installation tutorial
yarn add @material-ui/core
- 从库中添加一些小部件:
diff --git a/app/components/Home.tsx b/app/components/Home.tsx
index 20748ab..f4f9a21 100644
--- a/app/components/Home.tsx
+++ b/app/components/Home.tsx
@@ -1,11 +1,13 @@
import React from 'react';
import { Link } from 'react-router-dom';
+import { Button } from '@material-ui/core';
import routes from '../constants/routes.json';
import styles from './Home.css';
export default function Home() {
return (
<div className={styles.container} data-tid="container">
+ <Button>Hello</Button>
<h2>Home</h2>
<Link to={routes.COUNTER}>to Counter</Link>
</div>
现在当您 运行 yarn dev
时,一切都很好。然而,yarn start
产生:
init.ts:204 Unable to load preload script: /home/vasniktel/boiler-test/app/dist/renderer.prod.js
(anonymous) @ init.ts:204
init.ts:205 TypeError: Cannot use 'in' operator to search for 'ontouchstart' in null
at Module../app/index.tsx (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at n (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at module.exports../app/app.global.css (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at Object.<anonymous> (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:2)
at Object.<anonymous> (/home/vasniktel/boiler-test/app/dist/renderer.prod.js:3)
at Module._compile (internal/modules/cjs/loader.js:880)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:892)
at Module.load (internal/modules/cjs/loader.js:735)
at Module._load (internal/modules/cjs/loader.js:648)
at Module._load (electron/js2c/asar.js:717)
(anonymous) @ init.ts:205
有什么办法可以解决这个问题吗?
似乎从 main.dev.ts
文件中删除这些行可以解决问题:
@@ -58,14 +58,9 @@ const createWindow = async () => {
show: false,
width: 1024,
height: 728,
- webPreferences:
- process.env.NODE_ENV === 'development' || process.env.E2E_BUILD === 'true'
- ? {
- nodeIntegration: true
- }
- : {
- preload: path.join(__dirname, 'dist/renderer.prod.js')
- }
+ webPreferences: {
+ nodeIntegration: true
+ }
});