簡體   English   中英

在r.js構建文件中加載ngmin失敗

[英]Load ngmin in r.js build file fails

我試圖用ngminrequirejsr.js下面這個 ,但由於某些原因,我無法得到它的工作。 我已經在全球和本地通過npm安裝了ngminrequirejs ,並且這些選項都沒有在onBuildRead()正確加載ngmin 我還導出了NODE_PATH ,但這也沒有幫助。

構建文件在不提供隔離問題的鈎子函數的情況下起作用,但是我不是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
    }
})

看來,您正在嘗試在r.js的構建配置文件中調用nodejs的require。 但是此文件只是一個配置-它不是由節點執行的-僅由r.js優化器讀取。 您可以通過以下方式將構建配置包裝到Grunt任務中:

  1. 將此文件放入項目的根目錄

    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']); }; 
  2. 通過npm全局安裝grunt-cli

    npm install -g grunt-cli

  3. 將所需的模塊安裝到您的項目中

    npm install grunt grunt-contrib-requirejs

  4. 運行默認的grunt任務:

    grunt

這將需要js任務。 由於Grungfile.js是普通的CommonJs模塊,因此您可以輕松使用其中的任何npm模塊。 更多關於咕嚕這里

了解更多有關grunt的知識之后,請參閱此插件 -如果您決定使用grunt,我認為在當前情況下它可能很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM