Browserify require('restangular')返回空对象

Eln*_*ara 7 commonjs angularjs browserify

我尝试使用browserify,angularjs和restangular时遇到问题.

当我尝试要求npm或bower模块时,例如require('restangular),browserify返回空对象.当我需要任何bower或npm模块时会发生这种情况.当我尝试要求任何本地文件时,一切正常.

文件结构:

bower_components/
src/
  -client
      -app
          app.js
          backend
                backend.module.js
                -test
                    test.module.ls
                    test.js
node_modules/
Run Code Online (Sandbox Code Playgroud)

app.js

(function() {
    'use strict';
    require('angular');

    var rest = require('restangular');
    console.log(rest);

    module.exports = angular
        .module('app', [
            require('restangular').name,
            require('./test/test.module').name,
        ]);
})(); 
Run Code Online (Sandbox Code Playgroud)

的package.json

"browserify": {
    "transform": [
        "browserify-shim"
    ]
},
"browser": {
    "restangular": "./bower_components/restangular/dist/restangular.js"
},
"browserify-shim": {
    "restangular": "restangular"
}
Run Code Online (Sandbox Code Playgroud)

gulpfile.js

gulp.task('browserify', function() {
    gulp.src(['./src/client/app/app.js'])
    .pipe(plugins.browserify({
        insertGlobals: true,
        debug: true
    }))
    .pipe(plugins.concat('bundled.js'))
    .pipe(gulp.dest('./src/client/js'))
});
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?提前致谢.

小智 1

只需修改 package.json 中的“浏览器”部分:

"browserify-shim": {
    "angular": {
      "exports": "angular"
    },
 "restangular": {
      "depends": [
        "angular"
      ],
      "exports": "restangular"
    }
}
Run Code Online (Sandbox Code Playgroud)

希望它能起作用。