在 Node.js 中要求的正确方法是什么?

What's the proper way to require in Node.js?

我刚刚开始使用 Node.js 和 Electron,我在文档和示例代码中看到了关于如何获取模块的各种方法。具体来说,我正在尝试遵循 this 教程。在这个特定的例子中,我想我需要 appelectron.

1) 在教程中,你做到了:

var app = require('app')

2) 在由 Electron 提供的帮助您入门的 electron-quick-start 示例中,他们让您做:

const electron = require('electron')
const app = electron.app

3) 在 Electron documentation 中,他们使用:

const {app} = require('electron')

4) 在 Electron boilerplate program 中,我发现:

import { remote } from 'electron'
var app = remote.app

这是怎么回事?我主要在 Internet 上看到 #1,似乎 varconst 基本上可以互换,因为您不修改这些模块。我无法理解的是,如果 appelectron 中,那么为什么 #1 可以直接要求它(而不是像 require('electron.app') 这样的东西)?我更加困惑,因为#4 似乎暗示应用程序实际上在 electron.remote 中。其次,#3 是首选,因为它在文档中使用了吗?还是#4 更受欢迎? #4 程序中的注释是 "Use new ES6 modules syntax for everything"。这是否意味着这就是 JavaScript 的未来?当然,我想知道这些是否只是句法差异,或者它们是否真的会影响程序的运行方式 运行.

  • #1 不再适用于 Electron v1.0+。
  • #2#3是等价的,#3只是用了一个destructuring assignment.
  • #4 使用 ES6 module import 语法,NodeJS 还没有原生处理它,所以它只有在你使用 Babel、TypeScript 或其他一些可以转换那些 import 语句到 require 语句。