javascript - Grunt-Browserify 扩展标志不起作用

标签 javascript gruntjs grunt-browserify

我正在尝试使用 Grunt-browserify 和 reactify 来解析和捆绑用 jsx 编写的 React 组件。我想使用扩展标志,这样我就不必指定我的模块的文件扩展名,但我一直无法让它工作。这是一些测试代码:

一个 Grunt 文件:

'use strict';
module.exports = function(grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        browserify: {
            dev: {
                src: 'src/app.jsx',
                dest: 'dest/app.js',
                options: {
                    debug: true,
                    transform: ['reactify'],
                    extensions: ['.jsx']
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-browserify');

    grunt.registerTask('default', ['browserify:dev']);

};

主应用文件app.jsx:

'use strict';
var React = require('react');
var Test = require('./components/Test');   // Here is the problem... 

React.render(
    <Test />,
    document.getElementById('test')
);

然后是Test.jsx:

'use strict';
var React = require('react');

var Test = React.createClass({

    render: function() {
        return(
            <div>
            <p>Some markup</p>
            </div>
        );
    }
});

module.exports = Test;

当我尝试通过运行 grunt 来编译它时,出现错误:

Error: Cannot find module './components/Test' from '/Users/****/Sites/grunt-test/src'

Grunt-browserify documentation说它从 v1.2.6 开始就支持扩展标志,我在网上看到了这方面的例子,但我似乎无法让它在这里工作。如果我从命令行运行 browserify —— 就像这样 browserify -t reactify --extension=.jsx -o dest/app.js —— 它会起作用。

有什么想法吗?

最佳答案

您是否尝试过如下移动 browserifyOptions 中的属性?

grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        browserify: {
            dev: {
                src: 'src/app.jsx',
                dest: 'dest/app.js',
                options: {
                    browserifyOptions: {
                        debug: true,
                        transform: ['reactify'],
                        extensions: ['.jsx']
                    }
                }
            }
        }
    });

关于javascript - Grunt-Browserify 扩展标志不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393969/

相关文章:

browserify - Grunt 构建失败 - ParseError : 'import' and 'export' may appear only with 'sourceType: module'

Javascript location.reload() 丢失参数(空 $_GET)

javascript - 是否可以在 JavaScript 中访问事件队列?

javascript - SVG Translate Group 在使用 d3 调整窗口大小时定位

javascript - 如果未设置 key ,则设置 key - 哪种方式最有效?

sass - grunt sass sourcemaps sass路径错误?

javascript - Proxyquire找不到模块

node.js - 使用 Grunt-babelify-browserify 而不导入 Node 模块

gruntjs - 如果某些文件发生更改,则有条件地在 grunt 中运行任务

node.js - 无法安装 NodeJs :/usr/bin/env: node: No such file or directory