为什么没有';t';npm安装画布';创建一个javascript文件?

为什么没有';t';npm安装画布';创建一个javascript文件?,javascript,node.js,canvas,webpack,Javascript,Node.js,Canvas,Webpack,我是新的节点包。我试图使用以下方法将canvas安装到我的项目中: npm install canvas 我需要按照以下说明安装gtk和cairo,然后才能使其正常工作: 按照上述说明操作后,npm install canvas没有生成任何错误,以下是完整的输出(我没有看到任何错误): 我没有看到任何错误,但是当我执行npm start时,我看到: ERROR in ./~/canvas/lib/bindings.js Module not found: Error: Can't resolv

我是新的节点包。我试图使用以下方法将canvas安装到我的项目中:

npm install canvas
我需要按照以下说明安装gtk和cairo,然后才能使其正常工作:

按照上述说明操作后,npm install canvas没有生成任何错误,以下是完整的输出(我没有看到任何错误):

我没有看到任何错误,但是当我执行npm start时,我看到:

ERROR in ./~/canvas/lib/bindings.js Module not found: Error: Can't
resolve '../build/Release/canvas' in     
'C:\Users\me\myapp\node_modules\canvas\lib' @
./~/canvas/lib/bindings.js 3:17-51 @ ./~/canvas/lib/canvas.js @
./app/app.js @ ./app/components/base/base.spec.js
我查看bindings.js文件,唯一的代码是:

module.exports = require('../build/Release/canvas');
我导航到
。/build/Release/canvas
文件夹,找到5个名为canvas、扩展名不同的文件:

canvas.exp
canvas.lib
canvas.map
canvas.node
canvas.pdb

但是,没有canvas.js或其他文件。“Release”文件夹中的任何文件都不是javascript。我做错了什么?我需要做什么呢?

它不会生成
.js
文件,因为它使用
.node
文件,该文件是用于本机节点加载项的扩展名,node.js可以很好地加载它

发件人:

如果找不到确切的文件名,Node.js将尝试加载所需的文件名,并添加扩展名:
.js
.json
,最后加载
.Node

Node对
.Node
文件非常满意,因此您可以直接导入它,而无需显式添加扩展名

另一方面,默认情况下,Webpack不查找
.node
。如中所示,默认设置为:

extensions: [".js", ".json"]
您可以在网页包配置中将其更改为:

resolve: {
  extensions: [".js", ".json", "node"]
}
同样,您可能还需要在webpack中使其工作


注意:本机节点加载项在浏览器中不起作用,要让它们使用webpack,您可能需要设置,并且您可能还需要告诉webpack将
require
延迟到运行时,将其定义为。

它不会生成
.js
文件,因为它使用
.Node
文件,这是用于本机节点插件的扩展,Node.js可以很好地加载它

发件人:

如果找不到确切的文件名,Node.js将尝试加载所需的文件名,并添加扩展名:
.js
.json
,最后加载
.Node

Node对
.Node
文件非常满意,因此您可以直接导入它,而无需显式添加扩展名

另一方面,默认情况下,Webpack不查找
.node
。如中所示,默认设置为:

extensions: [".js", ".json"]
您可以在网页包配置中将其更改为:

resolve: {
  extensions: [".js", ".json", "node"]
}
同样,您可能还需要在webpack中使其工作


注意:本机节点加载项在浏览器中不起作用,要使它们与webpack一起工作,您可能需要进行设置,并且您可能还需要通过将
require
定义为一个来告诉webpack推迟到运行时。

它将读取
canvas.Node
文件。那么问题是如何编译canvas.node文件?它将读取
canvas.node
文件。那么问题是如何编译canvas.node文件的呢?