我通常在Docker容器中开发节点应用程序,并将我的源代码绑定到容器中,例如,在/usr/src/app。如果代码抛出堆栈跟踪,我会得到如下结果:
TypeError: Cannot read property 'createElement' of undefined
at parseUrl (/usr/src/app/node_modules/auth0-lock/lib/utils/url_utils.js:6:31)
at extractClientBaseUrlOption (/usr/src/app/node_modules/auth0-lock/lib/core/index.js:425:42)
at Object.setup (/usr/src/app/node_modules/auth0-lock/lib/core/index.js:110:20)
at setupLock (/usr/src/app/node_modules/auth0-lock/lib/core/actions.js:47:13)
at Auth0Lock.Base (/usr/src/app/node_modules/auth0-lock/lib/core.js:77:36)这一切都很简单,而且很有意义,因为据Node所知,它在/usr/src/app中运行。毕竟,这正是我们想要的--我们的应用程序对主机一无所知。
然而,VS Code有一个非常方便的功能,它可以在集成的终端中解析路径,并允许您单击它们来打开源代码。这在容器内不起作用,因为主机上的路径不正确。我需要把它“重写”成像/Users/shankie/project/node_modules/auth0-lock/lib/utils/url_utils.js这样的东西。
有人做过类似的事情吗?我可以在VS Code和Node中设想可能的解决方案……
发布于 2017-04-05 23:06:11
这不是内置的东西,但您可以通过更改Error原型来获得一些运气:
请记住,某些方法和属性不是标准的-请参阅:
或者,您可以在Docker中创建一个符号链接,以便在与您的机器相同的目录中运行它-这也是一些选项,不需要对代码进行任何更改。
https://stackoverflow.com/questions/43234348
复制相似问题