为什么 Electron 需要保存为开发者依赖?

2023-01-28前端开发问题
20

本文介绍了为什么 Electron 需要保存为开发者依赖?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

根据官网,电子文件的正确保存方法是:

As per the official website, the correct way to save electron files is:

npm install electron --save-dev

运行应用程序实际上需要电子(字面意思是:require()),这与 最高投票答案.那么,如果这是一个例外,我们为什么要做出这个例外呢?

Electron is actually required for running the app (quite literally: require()) and this goes against the top voted answer here. So why do we make this exception, if this is even one?

推荐答案

require 一个包的事实与它是否应该被视为依赖项或 devDependency 无关(在 npm 意义上).例如.许多项目使用 webpack API(即 const webpack = require('webpack')),但将其列为 devDependency.

The fact that you require a package is irrelevant to whether it should be considered a dependency or a devDependency (in the npm sense). E.g. many projects use webpack API (i.e. const webpack = require('webpack')) but list it as a devDependency.

原因在你链接到的帖子中也有解释:当你发布你的包时,如果消费者项目需要其他包来使用你的包,那么这些必须列为 dependencies.

The reason is also explained in the post you link to: when you publish your package, if the consumer project needs other packages to use yours, then these must be listed as dependencies.

如果您的包仅使用某些模块来构建、测试或将它们捆绑到 dist 文件中(即消费者项目将使用什么),那么这些模块不应在 dependencies 中提及.我们仍然将它们列在 devDependencies 中以供开发使用.

If your package uses some modules only for build, test, or bundles them into a dist file (i.e. what will be used by the consumer project), then those modules should not be mentioned in dependencies. We still list them in devDependencies for development.

现在对于电子应用程序,您将应用程序作为消费者项目的节点模块使用的可能性很小,因此上述约定并不真正相关.

Now in the case of an electron app, there is little chance you will consume your app as a node module of a consumer project, therefore the above convention is not really relevant.

此外,我们还遇到了 electron 包被捆绑为构建输出的一部分的情况.您的用户无需从 npm 获取 electron 即可使用您构建的应用程序.因此它很好地匹配了 devDependency 的定义.

Furthermore, we fall in the case where the electron package is bundled as part of the built output. There is no need for your user to get electron from npm to use your built app. Therefore it matches well the definition of a devDependency.

话虽如此,IIRC 一些电子打包程序将您的 dependencies 捆绑到构建的应用程序中,因此您仍然需要严格地填写此列表.

That being said, IIRC some electron packagers bundle your dependencies into the built app, so you still need some rigour in filling this list.

这篇关于为什么 Electron 需要保存为开发者依赖?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455

Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)...
2024-04-20 前端开发问题
5

CoffeeScript 总是以匿名函数返回
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)...
2024-04-20 前端开发问题
13