【问题标题】:Browserify failing with cannot find module "lodash" error for some filesBrowserify 失败,无法找到某些文件的模块“lodash”错误
【发布时间】:2015-07-31 07:57:10
【问题描述】:

我正在为位于某个路径的 app.js 运行 browserify,但每次都失败,无法从 [PATH] 找到模块 lodash

Running "browserify:build" (browserify) task
Error: Cannot find module 'lodash' from '/var/lib/jenkins/buildcode/output/mydir/app_store_richUI/cartridge/js'
Warning: Error running grunt-browserify. Use --force to continue.

[PATH] 与 app.js 文件所在的位置相同。但是,如果我将文件名更改为同一路径下的其他 js 文件,它就可以工作。所以,场景是有的js文件成功,同路径的其他js文件失败。

有人可以提出建议吗?

我已经全局安装了Browserify.js 脚本。

Browserify.js

module.exports = {
        build: {
            files: {
                '<%= settings["local.build.dir"] %>/output/<%= grunt.config("build") %>/app_eyeconic_richUI/cartridge/static/default/js/eyeconic.app.js':'<%= settings["local.build.dir"] %>/output/<%= grunt.config("build") %>/app_eyeconic_richUI/cartridge/js/app.js'
            },
        }
    
}

该路径与其他文件一起正确显示在日志中。只有app.js 文件才会失败

【问题讨论】:

  • 您的app.js 是什么样的?你是如何运行 browserify 的?
  • 这是我的 app.js link 。我只是使用上面给出的 browserify 配置文件运行 grunt browserify。奇怪的是,如果我在同一路径提供任何其他文件而不是 app.js,它就可以工作。这意味着路径在这里不是问题
  • 那么它从哪里得到lodashrequire 声明是什么样的?你确定你安装了lodash
  • lodash 已安装。我在 node_modules 文件夹中有它。而且我不确定在哪里检查 require 语句。像这样咕噜咕噜是很新的。问题是我在任务 browserify 或 app.js 中找不到需要 lodash 的地方。另外,如果我提供任何其他文件,同样的文件也可以工作
  • 有人知道这个问题吗?

标签: gruntjs browserify grunt-browserify


【解决方案1】:

这是一个非常微不足道的问题,但需要很长时间才能解决。 问题是构建套件与构建源位于不同的位置。 browserify 任务包含 require 语句,它在父目录中搜索模块,因此无法找到所需的模块。

将构建套件复制到与源相同的路径后,它可以工作。

所以目前,我的 gruntfile.js(和套件中的其他文件/文件夹)、导出和输出目录是相同的路径。

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 2021-09-15
    • 2019-03-08
    • 2020-04-21
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    相关资源
    最近更新 更多