Grunt Browserify – require.resolve不是一个函数

我正在用以下方式使用grunt-browserify :

browserify: build: files: '<%= paths.staticJS %>/Login.js' : '<%= paths.buildSrcJS %>/modules/login/Login.js' '<%= paths.staticJS %>/Password.js' : '<%= paths.buildSrcJS %>/modules/password/Password.js' '<%= paths.staticJS %>/RequestPasswordReset.js' : '<%= paths.buildSrcJS %>/modules/password/RequestPasswordReset.js' '<%= paths.staticJS %>/ResetPassword.js' : '<%= paths.buildSrcJS %>/modules/password/ResetPassword.js' '<%= paths.staticJS %>/ClientRouter.js' : '<%= paths.buildSrcJS %>/shared/ClientRouter.js' 

一般来说,它工作正常,但我仍然有一个问题,在我的代码的一部分,我使用节点require模块是这样的:

  chartViewPath = "../../charts/view/#{chartViewName}" resolvedPath = require.resolve(chartViewPath) chartViewModule = require.modules[resolvedPath] 

而且我收到以下错误: require.resolve is not a function

我试图在grunt任务中公开带有别名的全局需求:

  options: alias: [ '<%= paths.buildSrcJS %>/modules/login/Login.js:Login' '<%= paths.buildSrcJS %>/modules/password/Password.js:Password' '<%= paths.buildSrcJS %>/modules/password/RequestPasswordReset.js:RequestPasswordReset' '<%= paths.buildSrcJS %>/modules/password/ResetPassword.js:ResetPassword' '<%= paths.buildSrcJS %>/shared/ClientRouter.js:ClientRouter' ] 

它确实公开了作为函数的requirevariables,但我仍然不能使用require.resolvemodules方法。

我也应该提到,在转移到咕噜之前,我使用CakefileBrowserify我的文件

 task 'build','build for development environment', (options)-> fs = require 'fs' path = require 'path' browserify = require 'browserify' routers = [ "modules/login/Login","shared/ClientRouter","modules/password/Password","modules/password/RequestPasswordReset", "modules/password/ResetPassword" ] routers.forEach((r)-> jsSource = path.resolve(__dirname + "/src/main/#{r}.coffee") jsDestination = path.resolve( "#{__dirname}/../static/js/#{r.split('/').slice(-1)}.js" ) browserified = browserify(jsSource, { entry : [] }).bundle() fs.writeFile(jsDestination, browserified, (err)-> if err then console.log "error writing file:#{err}") ) 

并以这种方式,它工作正常,我可以使用require.resolverequire.modules因为由于某种原因,这样require.modules添加到每个条目文件的开始像这个要点这些方法。

grunt-browserify可能取决于与以前使用的版本不同的browserify版本。 使用npm ls来检查你之前的版本,看它是否与一个grunt-browerify想要的不同。

除此之外,我没有看到你的原始脚本和Grunt插件试图做什么之间的显着差异。