Webpack在datatables扩展中寻找没有的索引

时间:2017-10-10 04:57:23

标签: javascript node.js webpack datatables

我要做的是使用数据表。我收到错误:

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"
  },
}

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/有关解决方案的文档,了解更多可以解决模块的内容。