在r.js构build文件中加载ngmin失败
我试图在requirejs
的ngmin
中使用ngmin
,但由于某种原因,我无法使其工作。 我已经通过全局和本地npm
安装ngmin
和requirejs
,这些选项都不会在onBuildRead()
正确加载ngmin
。 我也导出了NODE_PATH
,但是这也没有帮助。
构build文件没有提供隔离问题的钩子函数,但我不是一个nodejs
专家,所以我不知道如何进一步解决这个问题。 任何帮助表示赞赏。
({ mainConfigFile: './static/js/boot.js', baseUrl: './static/js', name: 'boot', include: 'require.js', out: './static/js/main-built.js', normalizeDirDefines: 'all', onBuildRead: function (moduleName, path, contents) { var ngmin = require('ngmin'); console.log(ngmin); // ngmin is undefined return ngmin.annotate(contents); // no method annotate of undefined } })
看来,你正在试图调用rjj的构buildconfiguration文件中的nodejs的要求。 但是这个文件只是一个configuration – 它不是由节点执行的 – 它只能被r.js优化器读取。 您可以按照以下方式将您的构buildconfiguration包装到Grunt任务中:
-
把这个文件放到你的项目的根目录下
Gruntfile.js
module.exports = function(grunt) { 'use strict'; // Project configuration. var config = { requirejs : { compile : { options : { mainConfigFile: './static/js/boot.js', baseUrl: './static/js', name: 'boot', include: 'require.js', out: './static/js/main-built.js', normalizeDirDefines: 'all', onBuildRead: function (moduleName, path, contents) { var ngmin = require('ngmin'); console.log(ngmin); return ngmin.annotate(contents); } } } } }; grunt.initConfig(config); // These plugins provide necessary tasks. grunt.loadNpmTasks('grunt-contrib-requirejs'); grunt.registerTask('build', ['requirejs:compile']); // Default task. grunt.registerTask('default', ['watch']); };
-
通过npm全局安装grunt-cli
npm install -g grunt-cli
-
将所需模块安装到您的项目中
npm install grunt grunt-contrib-requirejs
-
运行默认的咕噜声任务:
grunt
这将需要任务。 由于Grungfile.js是普通的CommonJs模块,你可以很容易地使用它的任何npm模块。 更多关于Grunt的信息
在学习了更多关于grunt的信息之后,看看这个插件 – 如果你决定使用grunt,我认为它在当前的情况下可能是有用的。