- Автор: Ганеш Ратинавель
- Лицензия: MIT.
- URL репо: https://github.com/ganeshrvel/tutorial-electron-nodejs-import-packageinfo
- Контакты: [email protected]
Введение
Я видел, как многие пользователи импортируют package.json прямо в проект node.js. Это программная катастрофа, поскольку это может привести к утечке вашей конфиденциальной информации, такой как скрипты или частные ТОКЕНЫ, в связанные файлы js. Нет единого четкого решения, чтобы сделать это в электронном приложении. С этим нужно справляться с умом, используя алгоритмы и откат. Изначально это было реализовано в OpenMTP - Расширенное приложение для передачи файлов Android для macOS.
Выполнение
- Установить пакеты npm
$ npm install electron-root-path or $ yarn add electron-root-path
- Добавьте приведенный ниже код в файл webpack.config.js (как для производства, так и для разработки)
import { rootPath } from 'electron-root-path'; const pkg = require(join(rootPath, 'package.json')); plugins: [ new webpack.DefinePlugin({ PKG_INFO: { productName: JSON.stringify(pkg.productName), description: JSON.stringify(pkg.description), name: JSON.stringify(pkg.name), author: JSON.stringify(pkg.author), version: JSON.stringify(pkg.version), repository: JSON.stringify(pkg.repository), homepage: JSON.stringify(pkg.homepage) } }), ]
- Создайте файл ./app/pkginfo.js и добавьте приведенный ниже код.
'use strict'; import { join } from 'path'; import { readFileSync } from 'fs'; import { rootPath } from 'electron-root-path'; let _pkginfo = {}; // eslint-disable-next-line no-undef if (typeof PKG_INFO !== 'undefined' && PKG_INFO !== null) { // eslint-disable-next-line no-undef _pkginfo = PKG_INFO; } else { /* This is a fallback incase the webpack DefinePlugin modules hasn't been initialized yet. */ /* Developement mode only */ _pkginfo = JSON.parse( readFileSync(join(rootPath, 'package.json'), { encoding: 'utf8' }) ); } export const pkginfo = _pkginfo;
Больше репо
- OpenMTP - Расширенное приложение для передачи файлов Android для macOS
- Серия уроков Ганеша Ратинавела
- Npm: электронный-корневой-путь
- Усовершенствованный шаблон Electron React Redux
Лицензия
tutorial-electronic-nodejs-import-packageinfo выпущен под лицензией MIT.
Авторские права © 2018-настоящее время Ганеш Ратинавель