我正在尝试将reactify转换与browserify和gulp一起使用。
这个 gulp 任务有效:
return browserify({
paths: ['./node_modules','./app/scripts/'],
entries: ['./app/scripts/index.js'],
transform: ['reactify'],
debug: true
})
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('.tmp/scripts/'));
如果我从 gulp 中删除转换键并将其移至 package.json:
"browserify": {
"transform": [
["reactify", {"es6": true}]
]
}
转换不再运行(也尝试过不使用 es6)。
我正在使用这个 yeoman 生成器:https://www.npmjs.org/package/generator-react-spa
谁能解释一下吗?
最佳答案
package.json中的配置有两种情况使用:
- 您使用 browserify 命令行工具
- 它是一个不同于当前包的包(例如,当您需要它时,会使用 React 的 package.json 配置)
如果您使用 API,则可以手动指定转换。为了避免重复:
var package = require('./package.json');
browserify({
paths: ['./node_modules','./app/scripts/'],
entries: ['./app/scripts/index.js'],
transform: package.browserify.transform,
debug: true
})
或者更一般地说,合并可以是您最喜欢的合并实现(例如 _.defaults )
browserify(merge({}, package.browserify.transform, {
paths: ['./node_modules','./app/scripts/'],
entries: ['./app/scripts/index.js'],
debug: true
}))
关于gulp - 在 package.json 中声明时 Reactify 转换未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242601/