我要做的是使用数据表。我收到错误:
x(c)
当我尝试webpack时,需要所有数据表。我使用--display-error-details运行webpack,发现问题是它正在数据表目录中查找某种索引文件。例如
ERROR in ./index.js
Module not found: Error: Can't resolve 'datatables.net-dt' in path/src
我不明白为什么要寻找索引。我已经按照webpack和datatables上的所有文档进行了操作,根据数据表下载部分,我只需要添加包(我已经完成)并添加require部分,它应该可以工作。
我查看了数据表及其扩展的repos,并且没有任何索引。我用各种可能的方式搜索了这个,但找不到任何答案,所以我希望有人在这里可能有一个想法,因为我尝试了很多不同的东西,要么不起作用,要么产生更多的错误。
这是我的index.js
Field 'browser' doesn't contain a valid alias configuration
path/node_modules/datatables.net-colreorder-dt/index doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
path/node_modules/datatables.net-colreorder-dt/index.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
path/node_modules/datatables.net-colreorder-dt/index.json doesn't exist
需求运行后没有代码,所以我没有包含它。
这是我的package.json
require('./index.html');
var AWS = require('aws-sdk');
require( 'datatables.net-dt' )();
require( 'datatables.net-buttons-dt' )();
require( 'datatables.net-buttons/js/buttons.print.js' )();
require( 'datatables.net-colreorder-dt' )();
require( 'datatables.net-fixedheader-dt' )();
require( 'datatables.net-rowgroup-dt' )();
这是我的webpack.config.js
{
"name": "TestCode",
"version": "1.0.0",
"description": "Test",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack"
},
"keywords": [],
"author": " ",
"license": "ISC",
"dependencies": {
"aws-sdk": "^2.116.0",
"datatables.net-buttons-dt": "^1.4.2",
"datatables.net-colreorder-dt": "^1.4.1",
"datatables.net-dt": "^1.10.16",
"datatables.net-fixedheader-dt": "^3.1.3",
"datatables.net-rowgroup-dt": "^1.0.2",
"jquery": "^3.2.1",
"raw-loader": "^0.5.1"
},
"devDependencies": {
"html-webpack-plugin": "^2.30.1",
"json-loader": "^0.5.7",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.9.1"
},
}
答案 0 :(得分:1)
首先,您的require语句最后不需要额外的()
。 require('module');
没问题。
其次,您有一个.js
扩展名的语句。它不应该存在,因为您需要模块,而不是文件。
最后,针对解决问题的解决方案:您在webpack.config.js 中缺少解析字段。当您离开resolve字段时,所有require()
语句都在查找给定上下文文件夹中的模块,在您的情况下是源(src)文件夹(未定义时默认为根文件夹)。
要解决此问题,请在 webpack.config.js 中添加以下内容:
resolve: {
modules: [
path.resolve('./node_modules')
]
}
或者您的节点模块可能在哪里。
webpack寻找索引的原因是因为它是默认的。它无法找到您引用的模块,因此它正在寻找索引文件。您在同一导入中遇到多个错误的原因是因为它正在寻找多个扩展名。
扩展名默认为extensions: [".js", ".json"]
。这就是您在错误日志中看到 .js 和 .json 的原因。 (顺便说一下,这也是你可以在require()
陈述中留下扩展名的原因)
如果您需要更多帮助,请随时了解webpack,或查看https://webpack.js.org/configuration/resolve/有关解决方案的文档,了解更多可以解决模块的内容。