gpt4 book ai didi

javascript - browserify & React NODE_ENV 用于生产

转载 作者:行者123 更新时间:2023-12-03 03:53:23 25 4
gpt4 key购买 nike

我想用 React 和其他代码构建我的 js 代码,并将其缩小到一个文件。

它运行良好,但我得到的是react的开发版本

看起来您正在使用 React 开发版本的缩小副本

现在我知道我需要添加NODE_ENV = production

但是我尝试了很多方法,但构建仍然保持不变......

我尝试了 envify,如下所示,并将其硬编码如下:

process.env.NODE_ENV = 'production';

但仍然不好。

当我尝试添加 envify 转换时:

.transform(envify({
'NODE_ENV': 'production'
}))

我在构建时遇到此错误:

TypeError Path must be a string.

有什么想法吗?

function bundleJs() {

const _browserify = browserify({
entries: [config.entry],
debug : false,
cache: {},
packageCache: {},
fullPaths: true,
extensions: ['.js']
});

_browserify.plugin(resolutions, ['*'])
.transform('envify', {global: true, _: 'purge', NODE_ENV: 'production'})
.transform(hbsfy)
.transform(babelify, {
only: /(app)|(frontend-app)/,
presets: ['es2015-without-strict', 'react']
})
.on('update', () => {
bundle();
gutil.log('Rebundle...');
})
.on('log', gutil.log);

function bundle() {
return bundler.bundle()
.on('error', handleError)
.pipe(source('init.js'))
.pipe(rename('bundle.js'))
.pipe(buffer())
.pipe(gulpif(env === 'production', uglify()))
.pipe(gulpif(env !== 'production', sourcemaps.init({ loadMaps: true })))
.pipe(gulpif(env !== 'production', sourcemaps.write('.')))
.pipe(gulp.dest(config.dist))
.pipe(browserSync.reload({stream:true}));
}

// run it once the first time buildJs is called
return bundle();
}

最佳答案

好吧,在这段代码上浪费了我 3 个小时的时间之后。

我注意到 React 的构建是从 Bower 使用的,而不是从 npm 中使用的。

在composer.json中,我们在“浏览器”下有标识符,即:

"react": "./bower_components/react/react.js",
"react-dom": "./bower_components/react/react-dom.js"

我认为这直接指向 react 开发构建,所以这就是问题所在。

我只是使用 npm 安装,一切运行良好。

关于javascript - browserify & React NODE_ENV 用于生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45071230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com