vue-cli@3 没有可用于依赖类型的模块工厂:CssDependency
vue-cli@3 No module factory available for dependency type: CssDependency
当我使用 vue-cli@3 到
npm run build
系统提示生成此错误No module factory available for dependency type: CssDependency
相关问题搜了很多,都是angular,我也试了
- rm -r node_modules
- rm包-lock.json
- npm i
但是还是出现这个错误,我想知道如何解决这个问题
这是我的错误的详细信息
ERROR Error: No module factory available for dependency type: CssDependency
Error: No module factory available for dependency type: CssDependency
at addDependency (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:800:12)
at iterationOfArrayCallback (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:208:3)
at addDependenciesBlock (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:816:5)
at Compilation.processModuleDependencies (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:827:4)
at afterBuild (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:954:15)
at buildModule.err (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:998:11)
at callback (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:734:5)
at module.build.error (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:782:12)
at handleParseResult (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:478:12)
at doBuild.err (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:500:6)
at runLoaders (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:358:12)
at E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:186:6
at context.callback (E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
at childCompiler.runAsChild (E:\Games\Hitokoto\node_modules\mini-css-extract-plugin\dist\loader.js:198:12)
at compile (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:343:11)
at hooks.afterCompile.callAsync.err (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:681:15)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\Games\hitokoto\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
at AsyncSeriesHook.lazyCompileHook (E:\Games\hitokoto\node_modules\tapable\lib\Hook.js:154:20)
at compilation.seal.err (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:678:31)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\Games\hitokoto\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
E:\Games\hitokoto\node_modules\neo-async\async.js:16
throw new Error('Callback was already called.');
下面是我的package.json文件
{
"name": "hitokoto",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.4.4",
"jquery": "^3.4.1",
"jquery-ui": "^1.12.1",
"vue": "^2.6.10",
"vue-router": "^3.1.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-router": "^4.1.0",
"@vue/cli-service": "^4.1.0",
"@vue/eslint-config-prettier": "^5.0.0",
"babel-eslint": "^10.0.3",
"eslint": "^5.16.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-vue": "^5.0.0",
"prettier": "^1.19.1",
"stylus": "^0.54.7",
"stylus-loader": "^3.0.2",
"vue-template-compiler": "^2.6.10"
}
}
我遇到了同样的问题,发现它与 运行 宁 [=22] 时使用的路径 的 upper/lower 大小写有关=]npm 运行 build 命令。
使用 Powershell 或 cmd,我这样做了:
C:\> cd C:\git\testing
C:\git\testing> npm run build
得到了和你一样的错误。
然后我这样做了(注意大写GIT):
C:\>cd C:\GIT\testing
C:\GIT\testing> npm run build
然后就成功了。我在 Windows 10.
这可能是由 MiniCssExtractPlugin 引起的,
它应该同时使用 module/rules 和 plugins
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
//define module\rules
{
test:/\.css$/,
use:[{loader: MiniCssExtractPlugin.loader},{loader:'css-loader'}]
},
//set plugins
plugins:[
new vueLoaderPlugin(), new MiniCssExtractPlugin()
]
更多信息请看这里:https://github.com/webpack-contrib/mini-css-extract-plugin/issues/493
你也可以试试这个。这种方法对我有用。在您的 vue.config.js
中添加:
css: {
extract: false
}
在我的例子中,我执行了
npm run build
来自 GIT bash 并且遇到了这个问题。可能是由于文件路径大小写 (upper/lower) 问题。我切换回正常的命令行,它正在工作。
当我使用 vue-cli@3 到
npm run build
系统提示生成此错误No module factory available for dependency type: CssDependency
相关问题搜了很多,都是angular,我也试了
- rm -r node_modules
- rm包-lock.json
- npm i
但是还是出现这个错误,我想知道如何解决这个问题
这是我的错误的详细信息
ERROR Error: No module factory available for dependency type: CssDependency
Error: No module factory available for dependency type: CssDependency
at addDependency (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:800:12)
at iterationOfArrayCallback (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:208:3)
at addDependenciesBlock (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:816:5)
at Compilation.processModuleDependencies (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:827:4)
at afterBuild (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:954:15)
at buildModule.err (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:998:11)
at callback (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:734:5)
at module.build.error (E:\Games\hitokoto\node_modules\webpack\lib\Compilation.js:782:12)
at handleParseResult (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:478:12)
at doBuild.err (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:500:6)
at runLoaders (E:\Games\hitokoto\node_modules\webpack\lib\NormalModule.js:358:12)
at E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:186:6
at context.callback (E:\Games\hitokoto\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
at childCompiler.runAsChild (E:\Games\Hitokoto\node_modules\mini-css-extract-plugin\dist\loader.js:198:12)
at compile (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:343:11)
at hooks.afterCompile.callAsync.err (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:681:15)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\Games\hitokoto\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
at AsyncSeriesHook.lazyCompileHook (E:\Games\hitokoto\node_modules\tapable\lib\Hook.js:154:20)
at compilation.seal.err (E:\Games\hitokoto\node_modules\webpack\lib\Compiler.js:678:31)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\Games\hitokoto\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
E:\Games\hitokoto\node_modules\neo-async\async.js:16
throw new Error('Callback was already called.');
下面是我的package.json文件
{
"name": "hitokoto",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.4.4",
"jquery": "^3.4.1",
"jquery-ui": "^1.12.1",
"vue": "^2.6.10",
"vue-router": "^3.1.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-router": "^4.1.0",
"@vue/cli-service": "^4.1.0",
"@vue/eslint-config-prettier": "^5.0.0",
"babel-eslint": "^10.0.3",
"eslint": "^5.16.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-vue": "^5.0.0",
"prettier": "^1.19.1",
"stylus": "^0.54.7",
"stylus-loader": "^3.0.2",
"vue-template-compiler": "^2.6.10"
}
}
我遇到了同样的问题,发现它与 运行 宁 [=22] 时使用的路径 的 upper/lower 大小写有关=]npm 运行 build 命令。
使用 Powershell 或 cmd,我这样做了:
C:\> cd C:\git\testing
C:\git\testing> npm run build
得到了和你一样的错误。
然后我这样做了(注意大写GIT):
C:\>cd C:\GIT\testing
C:\GIT\testing> npm run build
然后就成功了。我在 Windows 10.
这可能是由 MiniCssExtractPlugin 引起的, 它应该同时使用 module/rules 和 plugins
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
//define module\rules
{
test:/\.css$/,
use:[{loader: MiniCssExtractPlugin.loader},{loader:'css-loader'}]
},
//set plugins
plugins:[
new vueLoaderPlugin(), new MiniCssExtractPlugin()
]
更多信息请看这里:https://github.com/webpack-contrib/mini-css-extract-plugin/issues/493
你也可以试试这个。这种方法对我有用。在您的 vue.config.js
中添加:
css: {
extract: false
}
在我的例子中,我执行了
npm run build
来自 GIT bash 并且遇到了这个问题。可能是由于文件路径大小写 (upper/lower) 问题。我切换回正常的命令行,它正在工作。