浏览本身被浏览化的库:相对路径错误
Browserifying libraries that were themselves browserified: relative paths error
我想使用使用 browserify 构建的库。该库正确构建并且在单独使用时工作正常。
现在 built 库在我的 vendors/ 目录中,我尝试在我的新应用程序中要求它:
var myLib = require('./vendors/myLib');
当我尝试浏览我的应用程序时,它抱怨它无法在该库中找到一些内部 require
语句:
Error: Cannot find module '../utils/logger' from '/myApp/vendor'
Browserify 似乎试图从错误的目录重新构建库。我该如何解决这个问题?
更多细节:
库看起来像这样:
myLib
│ app.js
│
├──models
│ model.js
│
├──utils
logger.js
app requires
模型,以及使用 require('../utils/logger')
.
模型 requires
记录器
然后将其构建到 myLib.js (browserify app.js --standalone myLib > myLib.js
) 中。
到目前为止,还不错,myLib 工作正常。
在我的新应用程序中,我将 myLib.js 放在 /vendor 目录中,require
它如顶部所列,并得到 Browserify 无法找到 '../utils/logger'.
在这种情况下,我 控制 myLib,因此如果绝对必要可以更改它,但这是公司的另一个项目,如果必要我不想这样做。但是,我在 SO 上看到 at least one other question 显然有人对 bower 安装的第三方库有同样的问题。
这似乎是pretty borked。
这里有几个选项:
运行 derequire 在 myLib
食用前。
尝试像这样浏览您的应用程序:
browserify({
entries: ['./entry'],
noParse: ['/abs/path/to/vendors/myLib.js'],
})
如果它不起作用,请尝试在 noParse
值中不带扩展名。
在使用前缩小 myLib
。
aaaah,我终于让它工作了。使用 browserify 的独立选项和 gulp-derequire 就可以了!耶!
我想使用使用 browserify 构建的库。该库正确构建并且在单独使用时工作正常。
现在 built 库在我的 vendors/ 目录中,我尝试在我的新应用程序中要求它:
var myLib = require('./vendors/myLib');
当我尝试浏览我的应用程序时,它抱怨它无法在该库中找到一些内部 require
语句:
Error: Cannot find module '../utils/logger' from '/myApp/vendor'
Browserify 似乎试图从错误的目录重新构建库。我该如何解决这个问题?
更多细节:
库看起来像这样:
myLib
│ app.js
│
├──models
│ model.js
│
├──utils
logger.js
app requires
模型,以及使用 require('../utils/logger')
.
requires
记录器
然后将其构建到 myLib.js (browserify app.js --standalone myLib > myLib.js
) 中。
到目前为止,还不错,myLib 工作正常。
在我的新应用程序中,我将 myLib.js 放在 /vendor 目录中,require
它如顶部所列,并得到 Browserify 无法找到 '../utils/logger'.
在这种情况下,我 控制 myLib,因此如果绝对必要可以更改它,但这是公司的另一个项目,如果必要我不想这样做。但是,我在 SO 上看到 at least one other question 显然有人对 bower 安装的第三方库有同样的问题。
这似乎是pretty borked。
这里有几个选项:
运行 derequire 在
myLib
食用前。尝试像这样浏览您的应用程序:
browserify({ entries: ['./entry'], noParse: ['/abs/path/to/vendors/myLib.js'], })
如果它不起作用,请尝试在
noParse
值中不带扩展名。在使用前缩小
myLib
。
aaaah,我终于让它工作了。使用 browserify 的独立选项和 gulp-derequire 就可以了!耶!