node.js require返回一个字符串而不是模块对象

时间:2017-07-24 07:28:18

标签: node.js electron

我正试图制作电子应用。但是,我的工作一直停留在:require关键字给了我一个字符串,而不是模块对象。

electron = require('electron')
console.log(electron)

打印:

/path/to/my/project/node_modules/_electron@1.6.11@electron/dist/electron

,完全不能用作模块。

相比之下,如果我导入内置模块或其他npm安装的模块:

fs = require('fs')
console.log(fs)

mkdirp = require('mkdirp')
console.log(mkdirp)

它打印对象层次结构,包括变量和函数。

以下是选举目录的内容,我不知道他们是否健康:

$ ls node_modules/electron
appveyor.yml  cli.js  CONTRIBUTING.md  dist  electron.d.ts  index.js  install.js  issue_template.md  LICENSE  node_modules  package.json  path.txt  README.md  test

1 个答案:

答案 0 :(得分:3)

这是预期的行为。您需要使用电子(在node_modules / .bin中)运行您的应用程序,而不是普通节点。

这是official tutorial在package.json中使用的内容:

"scripts": {
  "start": "electron ."
}

最终调用electron clirequire使用Traceback (most recent call last): File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/movies.py", line 32, in <module> cf = CollabFilterDataset.from_csv(path, 'ratings.csv', 'userId', 'movieId', 'rating') File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/fastai/column_data.py", line 146, in from_csv df = pd.read_csv(os.path.join(path,csv)) File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/pandas/io/parsers.py", line 709, in parser_f return _read(filepath_or_buffer, kwds) File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/pandas/io/parsers.py", line 449, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/pandas/io/parsers.py", line 818, in __init__ self._make_engine(self.engine) File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/pandas/io/parsers.py", line 1049, in _make_engine self._engine = CParserWrapper(self.f, **self.options) File "/Users/usernamehere/Desktop/Machine Learning/Lesson 5/CollaborativeFiltering/venv/lib/python3.6/site-packages/pandas/io/parsers.py", line 1695, in __init__ self._reader = parsers.TextReader(src, **kwds) File "pandas/_libs/parsers.pyx", line 402, in pandas._libs.parsers.TextReader.__cinit__ File "pandas/_libs/parsers.pyx", line 718, in pandas._libs.parsers.TextReader._setup_parser_source FileNotFoundError: File b'/Users/usernamehere/Users/usernamehere/Desktop/Machine Learning/Lesson 5/ratings.csv' does not exist find the path to electron.exe(您发现的字符串),并将其作为运行该应用的子进程生成。