首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用BroccoliJS实现褐化

用BroccoliJS实现褐化
EN

Stack Overflow用户
提问于 2015-08-29 22:40:19
回答 2查看 261关注 0票数 1

我正试图开始使用BroccoliJS来使用React框架构建应用程序。我试图使用browserify来组合我正在使用的javascript文件,但是当我试图在一个基本的应用程序上运行构建时,它会不断地返回错误。我有一个目录结构,类似于

代码语言:javascript
复制
|--app
   |--index.js
   |--index.html
|--node_modules
   |--react
|--public
|--styles
   |--app.scss
|--Brocfile.js
|--package.json

我的兄弟档案就像

代码语言:javascript
复制
/* Brocfile.js */

var compileSass = require('broccoli-sass');
var funnel = require('broccoli-funnel');
var mergeTrees = require('broccoli-merge-trees');
var browserify = require('broccoli-browserify');

var javascript = funnel('app', {
  srcDir: '/'
});

var styles = funnel('styles', {
  srcDir: '/'
});

var appJs = browserify(javascript, {
  entries: ['index.js'],
  outputFile: 'app.js',
  transform: ['reactify']
});

var appCss = compileSass([styles], 'app.scss', 'application.css');

module.exports = mergeTrees([appJs, appCss]);

问题是我不断地得到Cannot find module 'app.js'效果的错误。

对于如何编译这个项目,我并没有太挑剔,因为我还不太了解我正在使用的任何工具,但如果可能的话,我想使用Broccoli。有人能给我指明正确的方向吗?谢谢。

编辑:

如果有帮助的话,这就是app.js的样子。

代码语言:javascript
复制
var React = require('react');

var App = React.createClass({
  render: function() {
    return (
      <div>
        <h1>TEST</h1>
      </div>
      );
  }
});

React.render(<App />, document.getElementById('app'));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-01 02:16:48

我终于开始工作了。如果其他人在这方面有问题,那么切换到Babelify (而不是reactify)似乎是我能找到的最简单的解决方案。我还决定使用快速浏览器化,因为它支持缓存。这是对我有用的溴档案。

代码语言:javascript
复制
var mergeTrees = require('broccoli-merge-trees');
var compileSass = require('broccoli-sass');
var fastBrowserify = require('broccoli-fast-browserify');
var babelify = require('babelify');

var appJs = fastBrowserify('app', {
  browserify: {
    extensions: ['.js']
  },
  bundles: {
    'assets/app.js': {
      entryPoints: ['index.js'],
      transform: {
        tr: babelify
      }
    }
  }
});

var appCss = compileSass(['styles'], 'app.scss', '/assets/app.css');

module.exports = mergeTrees([appJs, appCss, 'public']);
票数 1
EN

Stack Overflow用户

发布于 2015-10-18 03:01:35

我不能让这件事起作用。我是这样做的

Brocfile.js:

代码语言:javascript
复制
var mergeTrees = require('broccoli-merge-trees')
var funnel = require('broccoli-funnel')
var babel = require("broccoli-babel-transpiler")
var browserify = require('broccoli-browserify')
var react = require('broccoli-react')

var js = funnel('src/js', {
  srcDir: '/',
  destDir: 'js'
})

js = babel(js)

js = browserify(js, {
  entries: ['./js/main.js'],
  outputFile: 'js/build.js'
})

js = react(js, {extensions: ['js']})

module.exports = mergeTrees([js])

那么,在main.js中,我可以做

代码语言:javascript
复制
import TopNav from './components/top-nav'
ReactDOM.render(<TopNav />, document.getElementById('top-nav-wrap'))

top-nav.js:

代码语言:javascript
复制
var TopNav = React.createClass({

  render: function() {
    return (
      <div className='top-nav'>
        <a href='#'>one</a>
        <a href='#'>one</a>
        <a href='#'>one</a>
        <a href='#'>one</a>
      </div>
    );
  }
})

export default TopNav

项目树

代码语言:javascript
复制
app/
  └── Brocfile.js
  └── src/
      └── index.html
  └── js/
      ├── mnain.js
      ├── components/
          └── top-nav.js
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32291388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档