在 Vue.js 中找不到这些依赖项错误

Posted

技术标签:

【中文标题】在 Vue.js 中找不到这些依赖项错误【英文标题】:These dependencies were not found error in Vue.js 【发布时间】:2018-02-22 11:58:27 【问题描述】:

将 npm & node 更新到最新版本后,当我尝试运行我的 vue 项目时出现以下错误:

未找到这些依赖项:

!!vue-style-loader!css-loader!../../../../../../../../../swlkagenda/1.2.0/build/ node_modules/vue-loader/lib/style-rewriter?id=data-v-c906422a&scoped=true!wisaapp/login/login.css /home/projects/wisaweb/trunk/app/modules/wisaapp/login/login.vue

我的所有 vue 文件都出现相同的错误,如下所示:

Login.vue:

<template src="wisaapp/login/login.html"></template>
<script src="wisaapp/login/login.js"></script>
<style src="wisaapp/login/login.css" scoped></style>

我写的第一条错误信息是针对 vue 文件中的 css 文件。对于js 文件,我收到以下错误:

!!babel-loader!wisaapp/login/login.js 在 /home/projects/wisaweb/trunk/app/modules/wisaapp/login/login.vue

.js.css 文件的路径在相对之前,但没有任何区别。

可能出了什么问题?

这是我的 package.json:


  "name" : "",
  "version" : "",
  "description" : "",
  "author" : "",
  "private" : true,
  "scripts" : 
    "dev" : "node build\/dev-server.js",
    "build" : "node build\/build.js",
    "unit" : "cross-env BABEL_ENV=test karma start test\/unit\/karma.conf.js --single-run",
    "e2e" : "node test\/e2e\/runner.js",
    "test" : "npm run unit && npm run e2e",
    "lint" : "eslint --ext .js,.vue src test\/unit\/specs test\/e2e\/specs"
  ,
  "dependencies" : 
    "axios" : "^0.15.3",
    "vue-axios" : "^1.2.2",
    "lodash" : "^4.17.4",
    "uglify-js" : "git+https:\/\/github.com\/mishoo\/UglifyJS2.git#harmony",
    "vue" : "^2.1.10",
    "vue-router" : "^2.2.0",
    "vue-style-loader" : "^2.0.4",
    "vue-touch" : "^2.0.0-beta.4",
    "vuex" : "^2.1.2",
    "wisaapp" : "./../../../../wisaweb_trunk/app/modules/wisaapp",
    "wisaapp-agenda-common" : "wisaapp-agenda-common"
  ,
  "devDependencies" : 
    "autoprefixer" : "^6.7.2",
    "babel-core" : "^6.22.1",
    "babel-eslint" : "^7.1.1",
    "babel-loader" : "^6.2.10",
    "babel-plugin-transform-runtime" : "^6.22.0",
    "babel-preset-es2015" : "^6.22.0",
    "babel-preset-stage-2" : "^6.22.0",
    "babel-register" : "^6.22.0",
    "chalk" : "^1.1.3",
    "connect-history-api-fallback" : "^1.3.0",
    "css-loader" : "^0.26.1",
    "eslint" : "^3.14.1",
    "eslint-friendly-formatter" : "^2.0.7",
    "eslint-loader" : "^1.6.1",
    "eslint-plugin-html" : "^2.0.0",
    "eslint-config-standard" : "^6.2.1",
    "eslint-plugin-promise" : "^3.4.0",
    "eslint-plugin-standard" : "^2.0.1",
    "eventsource-polyfill" : "^0.9.6",
    "express" : "^4.14.1",
    "extract-text-webpack-plugin" : "^2.0.0-rc.2",
    "file-loader" : "^0.10.0",
    "friendly-errors-webpack-plugin" : "^1.1.3",
    "function-bind" : "^1.1.0",
    "html-webpack-plugin" : "^2.28.0",
    "http-proxy-middleware" : "^0.17.3",
    "webpack-bundle-analyzer" : "^2.2.1",
    "cross-env" : "^3.1.4",
    "karma" : "^1.4.1",
    "karma-coverage" : "^1.1.1",
    "karma-mocha" : "^1.3.0",
    "karma-phantomjs-launcher" : "^1.0.2",
    "karma-sinon-chai" : "^1.2.4",
    "karma-sourcemap-loader" : "^0.3.7",
    "karma-spec-reporter" : "0.0.26",
    "karma-webpack" : "^2.0.2",
    "lolex" : "^1.5.2",
    "mocha" : "^3.2.0",
    "chai" : "^3.5.0",
    "sinon" : "^1.17.7",
    "sinon-chai" : "^2.8.0",
    "inject-loader" : "^2.0.1",
    "babel-plugin-istanbul" : "^3.1.2",
    "phantomjs-prebuilt" : "^2.1.14",
    "chromedriver" : "^2.27.2",
    "cross-spawn" : "^5.0.1",
    "nightwatch" : "^0.9.12",
    "selenium-server" : "^3.0.1",
    "semver" : "^5.3.0",
    "opn" : "^4.0.2",
    "ora" : "^1.1.0",
    "shelljs" : "^0.7.6",
    "url-loader" : "^0.5.7",
    "vue-loader" : "^10.3.0",
    "vue-style-loader" : "^2.0.0",
    "vue-template-compiler" : "^2.1.10",
    "webpack" : "^2.2.1",
    "webpack-dev-middleware" : "^1.10.0",
    "webpack-hot-middleware" : "^2.16.1",
    "webpack-merge" : "^2.6.1",
    "transfer-webpack-plugin" : "^0.1.4"
  ,
  "engines" : 
    "node" : ">= 4.0.0",
    "npm" : ">= 3.0.0"
  

npm 版本:5.4.1

nodejs 版本:0.10.25

更新

我试过了:

npm install css-loader --save
npm install vue-style-loader --save
npm install after deleting node_modules map
deleting all the generated files by build procedure

但他们都没有工作

如果我运行npm run build,我会得到类似的错误如下:

错误 /home/builder/build/release/projects/wisaweb/connection-maker.vue 找不到模块:错误:无法解析“vue-style-loader” '/home/builder/build/release/projects/wisaweb/connection-maker' @ /home/builder/build/release/projects/wisaweb/connection-maker.vue 3:0-372@./src/router/index.js@./src/main.js@multi ./build/prod-client ./src/main.js

错误 /home/builder/build/release/projects/wisaweb/todolist.vue 找不到模块:错误:无法解析“babel-loader” '/home/builder/build/release/projects/wisaweb/todolist' @ /home/builder/build/release/projects/wisaweb/todolist.vue 7:2-99@./src/router/index.js@./src/main.js@multi ./build/prod-client ./src/main.js

更新 2

npm 对这个问题的建议是:

要安装它们,您可以运行: npm install --save !!vue-style-loader!css-loader!../../../../../../../../../swlkagenda/1.2.0/build/node_modules/vue -loader/lib/style-rewriter?id=data-v-c906422a&scoped=true!wisaapp/src/components/global/login/login.css

【问题讨论】:

【参考方案1】:

您似乎缺少 peerDependency,这可能是因为您从 NPM 2 升级,或者可能只是安装出现问题,所以只需执行以下操作:

npm install css-loader --save-dev

如果一切都失败了,只需从您的项目中删除 node_modules 并重新安装:npm install

【讨论】:

我还发现这些错误(来自 babel-loader 和 vue-style-loader)并不适用于所有 jscss 文件。但是vue文件的结构却一模一样,真是奇怪【参考方案2】:

我今天遇到了同样的问题。直到我重命名了父文件夹,我才能找到解决方案! (感叹号)在其名称中。我删除了一个感叹号,一切都开始工作了!

【讨论】:

父文件夹是什么意思?在我的情况下应该是哪个文件夹? 检查所有文件夹树。如果某个文件夹的名称带有感叹号 - 这可能是个问题。 (我没有检查文件夹名称中是否还有其他受限符号 这帮助我找到了问题所在。我的地图结构包含两个相同的地图名称。 /mapname/mapname/..【参考方案3】:

您可以将 vue-loader 添加到您的应用程序并使用绝对路径 例如以“./”为前缀。

script src="./pathtoyourjsfile.js"

【讨论】:

【参考方案4】:

我遇到了同样的问题,但有另一个解决方案!

问题是项目文件夹的路径结构。我的路径看起来像这样(注意相同的地图名称)

/website/website/app/../..

我对其进行了更改,以便路径不再包含相同的名称解决了问题。

/site/website/app/../..

【讨论】:

【参考方案5】:

注意错误提示:

someFile.vue IN anotherFile.vue.

对我来说,这意味着我有一个 import 语句试图在 anotherFile.vue 中导入 someFile.vue,但它的路径错误。

所以仔细检查 anotherFile.vue 文件中的导入语句是否有正确的路径。

例如:

import PageLayout from "@/layouts/PageLayout.vue"

【讨论】:

【参考方案6】:

当我想在我的 Vue 应用程序中包含全局样式文件时,我遇到了同样的问题,但在不同的上下文中。我用谷歌搜索了以下方法:

module.exports = 
  css: 
    sourceMap: true,
    loaderOptions: 
      scss: 
        prependData: `
          @import "assets/styles/styles.scss";
        `,
      ,
    
  

这种方法的问题是双重的 - 首先它将styles.scss 文件的内容添加到每个处理的 scss 文件中 - 所以对于我的每个 Vue 组件(因为 sass-loader 因为所有 webpack 加载器都在 上运行每个文件 基础),其次styles.scss 的路径不是绝对的。并且由于 sass-loader 在每个文件的基础上运行,路径也在该文件及其 fs 位置的上下文中解析,这可能不适用于项目中的不同位置。

最后只是在项目根目录中导入样式文件,在src/main.ts 中使用import './styles.scss'

【讨论】:

以上是关于在 Vue.js 中找不到这些依赖项错误的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli v3 与 node.js firebase 函数,firebase 托管(错误:在函数源目录中找不到 npm 包)

为啥 Intellij 在 pom.xml 中找不到任何 Maven 依赖项?

Github 操作:在运行程序/路径中找不到依赖项锁定文件

包括自定义 PTransform 导致在 GCP 的 Dataflow 作业中找不到依赖项

Gradle在本地Maven存储库中找不到现有的依赖项

第三方 dll 在 ASP.NET MVC 项目中找不到它的依赖项