首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法读取未定义的- source-node.js的属性“substr”

TypeError:无法读取未定义的- source-node.js的属性“substr”
EN

Stack Overflow用户
提问于 2017-01-28 07:30:44
回答 3查看 5.4K关注 0票数 6

此错误是解析this question的结果。

这是我的ionic info

代码语言:javascript
复制
Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v7.4.0
Xcode version: Not installed

(我还使用npm v4.1.1__)

当试图构建@ionic/app-scripts时,我会得到以下错误:

代码语言:javascript
复制
E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\node_modules\source-map\lib\source-node.js:95
      var code = nextLine.substr(0, mapping.generatedColumn -
                         ^

TypeError: Cannot read property 'substr' of undefined
    at Function.<anonymous> (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\node_modules\source-map\lib\source-node.js:95:30)
    at Array.forEach (native)
    at BasicSourceMapConsumer.SourceMapConsumer_eachMapping [as eachMapping] (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\node_modules\source-map\lib\source-map-consumer.js:155:14)
    at Function.SourceNode_fromStringWithSourceMap [as fromStringWithSourceMap] (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\node_modules\source-map\lib\source-node.js:80:24)
    at SourceMapSource.node (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\lib\SourceMapSource.js:42:20)
    at ReplaceSource.node (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\lib\ReplaceSource.js:69:29)
    at CachedSource.node (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\lib\CachedSource.js:12:23)
    at E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\lib\ConcatSource.js:40:49
    at Array.map (native)
    at ConcatSource.node (E:\Documents\Year_3\Mobile_Application_Development\mammoth-v2\node_modules\webpack-sources\lib\ConcatSource.js:39:60)

如果需要,当我运行npm run build (构建@ionic/app-scripts__)时,这是构建日志:

代码语言:javascript
复制
[07:28:45]  ionic-app-scripts 1.0.0 
[07:28:45]  build dev started ...
[07:28:45]  clean started ...
[07:28:45]  clean finished in 4 ms
[07:28:45]  copy started ...
[07:28:45]  transpile started ...
[07:28:49]  transpile finished in 4.44 s
[07:28:49]  webpack started ...
[07:28:49]  copy finished in 4.57 s

            **errors arise here**

编辑:

我添加了配置:

代码语言:javascript
复制
"config": {
    "ionic_generate_source_map": false
},

...to packages.json似乎修复了错误,但现在面临另一个错误:

Error: ENOENT: no such file or directory, open 'main.js.map'

当我尝试执行ionic serve时抛出它( @ionic/app-scripts的构建现在运行良好)

编辑#2:

ionic是否依赖于源映射来运行?当错误出现时,因为不生成

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-29 17:09:04

此错误来自在一个ts文件中有两个类/组件。

一种残酷的方法来解决这个问题。

要去node_modules\webpack-sources\node_modules\source-map\lib\source-map\source-node.js

并且交换了所有2次,如下所示:

代码语言:javascript
复制
var nextLine = remainingLines[0];

到这个

代码语言:javascript
复制
var nextLine = remainingLines[0] || '';

这个解决方案的问题是您不能将它放到版本控制中,因为这是节点模块。

票数 8
EN

Stack Overflow用户

发布于 2017-01-29 12:14:21

我添加了配置:

代码语言:javascript
复制
"config": {
    "ionic_generate_source_map": false
},

...to packages.json似乎修复了错误。

在上面的编辑中,我描述了我遇到的另一个错误。

票数 2
EN

Stack Overflow用户

发布于 2017-04-21 14:03:15

我解决这个问题的方式是在package.json this config选项中添加:

代码语言:javascript
复制
"config": {
    "ionic_source_map_type": "eval"
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41907409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档