webpack - TypeError:dep.getResourceIdentifier 不是函数

Posted

技术标签:

【中文标题】webpack - TypeError:dep.getResourceIdentifier 不是函数【英文标题】:webpack - TypeError: dep.getResourceIdentifier is not a function 【发布时间】:2018-08-14 02:54:04 【问题描述】:

尝试使用laravel-mix 2.0.0 & webpack 4.1.0laravel 5.6.7 下混合

npm run dev

每次运行都会出现此错误.. 尝试了常见的解决方法,

deleted npm_modules folder npm cache clean --force npm install

还是一样..

cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

0% 编译 10% 构建模块 0/1 模块 1 活动 ...krish\node_modules\toastr\toastr.less 10% 建造模块 1/1 模块 0 活跃 10% 建造模块 2/2 模块 0 活跃 10% 构建模块 2/3 模块 1 个活跃 ...\www\krish\resources\assets\js\app.js 10% 构建模块 2/5 模块 3 个活动模块 ...\krish\resources\assets\sass\app.scss 10% 构建模块 3/6 个模块 3 个活动模块 ...sources\assets\less\adminlte-app.less 10% 构建模块 4/7 个模块 3 个活动模块 ...krish\node_modules\toastr\toastr.less 10% 构建模块 5/8 个模块 3 个活动模块 ...otstrap-less\bootstrap\bootstrap.less 10% 构建模块 6/8 个模块 2 个活动模块 ...sh\resources\assets\js\app-landing.js 10% 构建模块 6/9 模块 3 个活动模块 ...krish\node_modules\toastr\toastr.less 10% 构建模块 6/11 模块 5 个活动模块 ...\krish\resources\assets\sass\app.scss 10% 构建模块 6/12 模块 6 个活动模块 ...sources\assets\less\adminlte-app.less 10% 构建模块 6/13 个模块 7 个活跃的 ...modules\style-loader\lib\addStyles.js 10% 构建模块 7/13 模块 6 个活动 ...modules\style-loader\lib\addStyles.js 10% 构建模块 8/13 个模块 5 个活动模块 ...sources\assets\less\adminlte-app.less 10% 构建模块 8/14 个模块 6 个活动模块 ...de_modules\css-loader\lib\css-base.js 11% 构建模块 9/14 模块 5 个活动模块 ...de_modules\css-loader\lib\css-base.js 11% 构建模块 10/14 模块 4 个活动模块 ...de_modules\css-loader\lib\css-base.js 11% 构建模块 11/14 模块 3 个活动 ...sources\assets\less\adminlte-app.less 11% 构建模块 11/15 模块 4 个活跃的 ...node_modules\style-loader\lib\urls.js 11% 构建模块 11/16 模块 5 个活动模块 ...h\node_modules\vue\dist\vue.common.js 11% 构建模块 12/16 个模块 4 个活跃的 ...h\node_modules\vue\dist\vue.common.js 11% 构建模块 13/16 个模块 3 个活动模块 ...h\node_modules\vue\dist\vue.common.js 11% 构建模块 14/16 模块 2 个活动 ...sources\assets\less\adminlte-app.lessTypeError: dep.getResourceIdentifier is not a function

at addDependency (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:387:30)
at iterationOfArrayCallback (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:78:3)
at addDependenciesBlock (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:407:5)
at Compilation.processModuleDependencies (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:418:4)
at afterBuild (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:545:16)
at _this.buildModule.err (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:591:11)
at callback (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:342:35)
at module.build.error (C:\wamp\www\krish\node_modules\webpack\lib\Compilation.js:378:12)
at handleParseResult (C:\wamp\www\krish\node_modules\webpack\lib\NormalModule.js:363:12)
at doBuild.err (C:\wamp\www\krish\node_modules\webpack\lib\NormalModule.js:385:6)
at runLoaders (C:\wamp\www\krish\node_modules\webpack\lib\NormalModule.js:264:12)
at C:\wamp\www\krish\node_modules\loader-runner\lib\LoaderRunner.js:370:3
at iterateNormalLoaders (C:\wamp\www\krish\node_modules\loader-runner\lib\LoaderRunner.js:211:10)
at Array.<anonymous> (C:\wamp\www\krish\node_modules\loader-runner\lib\LoaderRunner.js:202:4)
at Storage.finished (C:\wamp\www\krish\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:43:16)
at provider (C:\wamp\www\krish\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:79:9)
at C:\wamp\www\krish\node_modules\graceful-fs\graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:532:3)

npm 错误!代码生命周期 npm 错误!错误号 1 npm 错误! @开发:cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js npm 错误!退出状态 1 npm 错误! npm 错误! @开发脚本失败。 npm 错误!这可能不是 npm 的问题。上面可能还有额外的日志输出。

npm 错误!可以在以下位置找到此运行的完整日志: npm 错误! C:\Users\admin\AppData\Roaming\npm-cache_logs\2018-03-05T19_05_05_252Z-debug.log npm 错误!代码生命周期 npm 错误!错误号 1 npm 错误! @dev:npm 运行开发 npm 错误!退出状态 1 npm 错误! npm 错误! @dev 脚本失败。 npm 错误!这可能不是 npm 的问题。上面可能还有额外的日志输出。

npm 错误!可以在以下位置找到此运行的完整日志: npm 错误! C:\Users\admin\AppData\Roaming\npm-cache_logs\2018-03-05T19_05_05_702Z-debug.log

进程以退出代码 1 结束

Package.json


  "private": true,
  "scripts": 
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "lint": "./node_modules/.bin/eslint --ext .js,.vue resources/assets/js"
  ,
  "devDependencies": 
    "acacha-forms": "^1.0.0",
    "admin-lte": "^2.4.2",
    "axios": "^0.18.0",
    "babel-eslint": "^8.2.2",
    "babel-loader": "^7.1.3",
    "babel-preset-es2015": "^6.22.0",
    "bootstrap-less": "^3.3.8",
    "bootstrap-sass": "^3.3.7",
    "cross-env": "^5.1.3",
    "eslint": "^4.18.2",
    "eslint-config-standard": "^11.0.0",
    "eslint-friendly-formatter": "^3.0.0",
    "eslint-loader": "^2.0.0",
    "eslint-plugin-html": "^4.0.2",
    "eslint-plugin-promise": "^3.6.0",
    "eslint-plugin-standard": "^3.0.0",
    "font-awesome": "^4.7.0",
    "icheck": "^1.0.2",
    "ionicons": "^3.0.0",
    "jquery": "^3.3.1",
    "laravel-mix": "2.*",
    "less": "^3.0.0",
    "less-loader": "^4.0.6",
    "lodash": "^4.17.5",
    "node-sass": "^4.7.2",
    "sass-loader": "^6.0.7",
    "toastr": "^2.1.4",
    "vue": "^2.5.13",
    "vue-loader": "^14.0.0"
  ,
  "dependencies": 
    "ajv": "^6.2.1",
    "bootstrap": "^3.3.7",
    "bootstrap-iconpicker": "^1.8.2",
    "eslint-plugin-import": "^2.9.0",
    "eslint-plugin-node": "^6.0.0",
    "jquery-ui": "^1.12.1",
    "jquery-ui-dist": "^1.12.1",
    "jquery-ujs": "^1.2.2",
    "select2": "^4.0.6-rc.1",
    "vue-template-compiler": "^2.5.13",
    "webpack": "^4.1.0",
    "webpack-cli": "^2.0.10"
  ,
  "babel": 
    "presets": [
      "es2015"
    ]
  

更多细节。 Node.js:9.7.1 npm:5.7.1 网络包:4.1.0 操作系统:Win10 32bit 除了 bootstrap,所有的包都是最新的。

参考:There is no html-webpack-plugin as mentioned here..

【问题讨论】:

查看此链接github.com/JeffreyWay/laravel-mix/issues/1314 @krishankTripathi 这个问题和上面提到的问题有什么关系? 【参考方案1】:

Laravel Mix 似乎还不兼容 Webpack 4。 我发现我们现在唯一能做的就是切换回 Webpack ^3.11.0。 (通过更改 package.json 中的版本来做到这一点)。

这是一个关于这个问题的未解决问题:https://github.com/webpack/webpack/issues/6675

【讨论】:

现在是 2020 年,这仍然是个问题。无法测试 Vue 组件。

以上是关于webpack - TypeError:dep.getResourceIdentifier 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

webpack:TypeError:validateOptions 不是函数

TypeError: webpack.optimize.UglifyJsPlugin 不是构造函数

TypeError:webpack.ProvidePlugin 不是构造函数

webpack - TypeError:dep.getResourceIdentifier 不是函数

Webpack:TypeError:无法读取未定义的属性“属性”

从 webpack-cli 获取错误:webpack 配置中的“TypeError:merge is not a function”