标签: browserify

在browserify中需要cdn库而不将其捆绑在最终的js文件中

如果我有一个从cdn下拉的库并且不希望它成为最终js文件的一部分但是能够使用browserify要求它,我该如何解决它?

以下是我目前使用alias和shim文件解决它的方法.

browserify: {
    options: {
        debug: true,
        transform: [ 'reactify' ],
        alias: [
            'client/shims/jquery.js:jquery'
        ]
    },
    app: {
        src:  'client/app.js',
        dest: 'public/app.js'
    }
}
Run Code Online (Sandbox Code Playgroud)

这是client/shims/jquery.js我所说的shim文件,jquery所以我可以使用require('jquery')而不是完整路径.

module.exports = $;
Run Code Online (Sandbox Code Playgroud)

grunt-browserify中是否有一个快捷方式来支持这种情况?我想知道是否可以在Gruntfile.js中定义它而不创建shim文件.

添加external: [ 'jquery' ]似乎完全忽略它并且不起作用.

node.js browserify gruntjs

37
推荐指数
1
解决办法
8908
查看次数

为Browserify定义全局变量

我正在使用SpineJS(它导出一个commonjs模块)并且它需要全局可用,因为我在任何地方都使用它,但似乎我必须Spine = require('spine')对每个使用Spine的文件进行操作.

有没有什么方法可以定义Spine一次以使其全球可用?

PS:我使用Spine作为例子,但我一般都想知道如何与其他任何库一起使用.

spine.js browserify

34
推荐指数
2
解决办法
3万
查看次数

React - 发生了缩小的异常

我通过NPM安装了React js并使用browserify来管理react中的组件.当React发生异常时,控制台显示为

"未捕获的错误:发生了缩小的异常;使用非缩小的开发环境获取完整的错误消息和其他有用的警告."

如何启用完整的错误消息?

npm browserify reactjs

34
推荐指数
5
解决办法
6万
查看次数

Gulp + browserify + 6to5 +源地图

我正在尝试编写一个gulp任务,允许我在JS中使用模块(CommonJS很好),使用browserify + 6to5.我也希望源映射能够工作.

所以:1.我使用ES6语法编写模块.2. 6to5将这些模块转换为CommonJS(或其他)语法.3. Browserify捆绑模块.4.源映射返回原始ES6文件.

怎么写这样的任务?

编辑:这是我到目前为止所拥有的:

吞咽任务

gulp.task('browserify', function() {
    var source = require('vinyl-source-stream');
    var browserify = require('browserify');
    var to5ify = require('6to5ify');

    browserify({
        debug: true
    })
    .transform(to5ify)
    .require('./app/webroot/js/modules/main.js', {
        entry: true
    })
    .bundle()
    .on('error', function(err) {
        console.log('Error: ' + err.message);
    })
    .pipe(source('bundle.js'))
    .pipe(gulp.dest(destJs));
});
Run Code Online (Sandbox Code Playgroud)

模块/ A.js

function foo() {
    console.log('Hello World');

    let x = 10;

    console.log('x is', x);
}

export {
    foo
};
Run Code Online (Sandbox Code Playgroud)

模块/ B.js

import {
    foo
}
from './A';

function bar() {
    foo();
}

export { …
Run Code Online (Sandbox Code Playgroud)

browserify source-maps gulp babeljs

32
推荐指数
1
解决办法
9828
查看次数

Babelify在从node_modules导入模块时抛出ParseError

BabelifyBrowserify一起工作.此外,我正在使用节点模块系统的ES6样式模块功能.

我想把所有自己的模块都放进去node_modules/libs.

例如:

test.jsnode_modules/libs

export default () => {
  console.log('Hello');
};
Run Code Online (Sandbox Code Playgroud)

main.js(将编译为bundle.js)

import test from 'libs/test';

test();
Run Code Online (Sandbox Code Playgroud)

之后,我bundle.js用以下命令编译了上面的代码:

browserify -t babelify main.js -o bundle.js
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我有一些错误:

export default () => {
^

ParseError: 'import' and 'export' may appear only with 'sourceType: module'
Run Code Online (Sandbox Code Playgroud)

目录结构:

[test]
  `-- node_modules
  ? `-- libs
  ?  `-- test.js
  `-- main.js
Run Code Online (Sandbox Code Playgroud)

但是,当自己的模块不是node_modules这样的时候:

[test]
  `-- libs
  ? `-- test.js
  `-- main.js
Run Code Online (Sandbox Code Playgroud)

然后,它工作正常.我如何使用ES6风格模块,babelify在 …

javascript node.js browserify ecmascript-6 babeljs

32
推荐指数
2
解决办法
2万
查看次数

如何使用browserify和gulp输出多个包

我有浏览器捆绑文件,它工作得很好.但是,如果我需要生成多个捆绑包呢?

我想最终dist/appBundle.jsdist/publicBundle.js

gulp.task("js", function(){

    return browserify([
            "./js/app.js",
            "./js/public.js"
        ])
        .bundle()
        .pipe(source("bundle.js"))
        .pipe(gulp.dest("./dist"));

});
Run Code Online (Sandbox Code Playgroud)

显然这不会起作用,因为我只指定了一个输出(bundle.js).我可以通过重复上面这样的声明来实现这一点(但由于重复,它感觉不对):

gulp.task("js", function(){

    browserify([
            "./js/app.js"
        ])
        .bundle()
        .pipe(source("appBundle.js"))
        .pipe(gulp.dest("./dist"));


    browserify([
            "./js/public.js"
        ])
        .bundle()
        .pipe(source("publicBundle.js"))
        .pipe(gulp.dest("./dist"));

});
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决这个问题?谢谢!

javascript node.js npm browserify gulp

31
推荐指数
1
解决办法
2万
查看次数

我应该使用Browserify或Webpack来延迟加载角度为1.x的依赖项

我想在大型应用程序中异步加载角度依赖项,我试图在BrowserifyWebpack之间做出决定.我知道angular 2.0会原生支持这个,但是现在我正在寻找一个支持良好且流行的解决方案.

任何人都可以就角度团队中哪些最有效,以及构建项目的最佳方式提供建议.

angularjs browserify webpack

30
推荐指数
1
解决办法
1万
查看次数

Browserify - 多个入口点

我在吞咽中使用Browserify.我也试图将我的测试编译成单个文件.但不像我的主要应用程序,我工作得很好,我很难得到测试编译.主要区别在于测试有多个入口点,没有像该应用程序那样的单个入口点.但我收到Browserify的错误,它无法找到入口点.

browserify   = require 'browserify'
gulp         = require 'gulp'
source       = require 'vinyl-source-stream'

gulp.task 'tests', ->
    browserify
        entries: ['./app/js/**/*Spec.coffee']
        extensions: ['.coffee']
    .bundle 
        debug: true
    .pipe source('specs.js') 
    .pipe gulp.dest('./specs/')
Run Code Online (Sandbox Code Playgroud)

automated-tests browserify gulp

30
推荐指数
2
解决办法
2万
查看次数

使用browserify时,require未定义错误

我是浏览器并尝试在浏览器中加载npm模块的新手,但是我收到以下错误:

未捕获的ReferenceError:未定义require

我正在关注http://browserify.org/上的教程.创建了包含以下内容的javascript文件:

var unique = require('uniq');

然后运行

npm install uniq

browserify main.js -o bundle.js

生成了bundle.js文件,我把它包含在我的html中,但仍然遇到上述错误.有什么想法我做错了什么?

这是最终HTML文件的内容:

<!DOCTYPE html>
<html>
<head>
    <title></title>

    <script src="bundle.js"></script>
    <script src="script.js"></script>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是bundle.js的内容:http://pastebin.com/1ECkBceB

这是script.js:

var unique = require('uniq');

javascript node.js browserify

30
推荐指数
4
解决办法
3万
查看次数

Browserify和bower.规范方法

我现在使用npm中没有开箱即用的软件包的方式是这样的:

package.json有:

 "napa": {
     "angular": "angular/bower-angular",
     "angular-animate": "angular/bower-angular-animate",
     "d3": "mbostock/d3",
     "ui-router":"angular-ui/ui-router",
     "bootstrap":"twbs/bootstrap"
  },
  "scripts": {
     "install": "node node_modules/napa/bin/napa"
Run Code Online (Sandbox Code Playgroud)

并将文件安装到node_modules目录中,我就像这样使用它们

require('angular/angular')
require('ui-router') 
... etc
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我在想是否可以使用与bower一起安装的软件包(进入特定于bower的文件夹)并将它们原生用作节点模块?是否可以调整节点的模块分辨率并强制它不仅在node_modules目录中查找模块,还在bower目录中查找模块?或者可能使用npm link或其他什么?

是否有某种惯例与浏览器一起使用browserify?

node.js browserify bower

29
推荐指数
2
解决办法
2万
查看次数