Npm 编译器:无法读取未定义的属性“startsWith”

Posted

技术标签:

【中文标题】Npm 编译器:无法读取未定义的属性“startsWith”【英文标题】:Npm compiler : Cannot read property 'startsWith' of undefined 【发布时间】:2017-12-30 01:26:16 【问题描述】:

我确实使用webpack template 设置了https://github.com/vuejs/vue-cli Vue CLI,它工作正常。 但是当我更改模板文件中的某些内容时,它会引发以下错误。

请帮助解决以下问题,

> Starting dev server...


 DONE  Compiled successfully in 2703ms                                6:00:35 PM

> Listening at http://localhost:8083
 WAIT  Compiling...                                                   6:01:05 PM


c:\xampp\htdocs\myproject\node_modules\enhanced-resolve\lib\CachedInputFileSy
stem.js:145
                        if(key.startsWith(what))
                              ^

TypeError: Cannot read property 'startsWith' of undefined
    at Storage.purge (c:\xampp\htdocs\myproject\node_modules\enhanced-resolve
\lib\CachedInputFileSystem.js:145:10)
    at Storage.purge (c:\xampp\htdocs\myproject\node_modules\enhanced-resolve
\lib\CachedInputFileSystem.js:150:9)
    at CachedInputFileSystem.purge (c:\xampp\htdocs\myproject\node_modules\en
hanced-resolve\lib\CachedInputFileSystem.js:259:20)
    at EventEmitter.watcher.once (c:\xampp\htdocs\myproject\node_modules\webp
ack\lib\node\NodeWatchFileSystem.js:42:26)
    at EventEmitter.g (events.js:291:16)
    at emitTwo (events.js:106:13)
    at EventEmitter.emit (events.js:191:7)
    at EventEmitter._onTimeout (c:\xampp\htdocs\myproject\node_modules\watchp
ack\lib\watchpack.js:142:7)
    at ontimeout (timers.js:380:14)
    at tryOnTimeout (timers.js:244:5)
    at Timer.listOnTimeout (timers.js:214:5)

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x8
6)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"
npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! dktrgo@1.0.0 dev: `node build/dev-server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the dktrgo@1.0.0 dev script 'node build/dev-server.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the dktrgo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node build/dev-server.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs dktrgo
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls dktrgo
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     c:\xampp\htdocs\myproject\npm-debug.log

谢谢

【问题讨论】:

问题与vue-cli无关,似乎是webpack-dev-server的依赖引起的。 github.com/webpack/enhanced-resolve/issues/102 太好了,谢谢。它解决了我的问题 【参考方案1】:

我能够在 v3.4.0 中重现,但在 v3.4.1(大约 5 小时后发布)中无法重现。

确认您使用的是 v3.4.0:

npm list enhanced-resolve

请将增强解析更新到 v3.4.1:

npm i enhanced-resolve

【讨论】:

这里是相关的github问题:github.com/webpack/webpack-dev-server/issues/1005和github.com/webpack/enhanced-resolve/issues/97 对我不起作用npm list enhanced-resolve training_front@1.0.0 /home/users/webgasmi/projects/training_front ├── enhanced-resolve@3.4.1 └─┬ webpack@2.7.0 └── enhanced-resolve@3.4.0

以上是关于Npm 编译器:无法读取未定义的属性“startsWith”的主要内容,如果未能解决你的问题,请参考以下文章

升级后我的 npm 完全损坏 - '无法读取未定义的属性'get''

数据['dist-tags'][npm.tag] - 无法读取未定义的属性“最新”

Npm 安装期间“无法读取未定义的属性‘匹配’”

在项目目录中运行“npm install”时出现错误“无法读取未定义的属性'0'”

未捕获的类型错误:无法读取未定义的属性(读取“使用”)

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