我尝试使用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
有人可以解释一下吗?
答案 0 :(得分:3)
package.json中的config用于两种情况:
如果您正在使用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
}))
答案 1 :(得分:1)
也许它不应该那样工作?即browserify命令不会读取您自己的package.json,只读取所需的模块(?)。
https://github.com/substack/node-browserify#browserifytransform
现在当某人需要()你的模块时,brfs将自动应用于模块中的文件,而无需使用你模块的人明确干预。