我正在使用gulp更新角度1.6网络应用程序。我有本地开发人员的gulp watch任务设置,使用browser-sync自动重新加载我的本地源文件。我正在制作一个新的gulp任务build-prod minify / concat等。看起来所有的教程和自述文件都集中在“本地”或“生产”设置上。所以,我想弄清楚并在线之间阅读。
处理节点server.js文件的最佳方法是什么,以便它知道src是本地的,而dist是prod?
app.use('/scripts', express.static(__dirname + '/src/scripts/'));
app.use('/css', express.static(__dirname + '/src/css/'));
app.use('/html', express.static(__dirname + '/src/html'));
app.use('/img', express.static(__dirname + '/src/img'));
需要成为:
app.use('/scripts', express.static(__dirname + '/dist/scripts/'));
app.use('/css', express.static(__dirname + '/dist/css/'));
app.use('/html', express.static(__dirname + '/dist/html'));
app.use('/img', express.static(__dirname + '/dist/img'));
我应该换掉src& dist是变量还是有更好的方法在多个环境之间“使用”这些?
答案 0 :(得分:0)
使用环境变量。
Series1 Series2
Name
AB 1 3
AB 1 4
AB 2 3
AB 2 4
CD 1 3
CD 1 4
CD 2 3
CD 2 4
然后在运行应用程序的过程中设置环境变量。
答案 1 :(得分:0)
您可以使用像dotenv这样的模块将.env
文件中的环境变量加载到process.env
。然后,您可以使用node
在app.set('env', 'development')
中设置应用的环境。
答案 2 :(得分:0)
感谢您的信息
此外,基于this post,添加到我的gulp命令npm run gulp-watch
gulp.task('watch', ['set-dev-node-env', 'browser-sync'], function () {
gulp.watch(['./src/**/*.*'], reload);
});
gulp.task('set-dev-node-env', function() {
process.env.NODE_ENV = 'development';
return;
});
和我的server.js文件
// environment checker
var port;
var useFolder;
if (process.env.NODE_ENV === 'development') {
port = process.env.PORT = 5000;
useFolder = '/src/';
} else if (process.env.NODE_ENV === 'production') {
port = process.env.PORT = 80;
useFolder = '/dist/';
}
app.use('/html', express.static(__dirname + useFolder + 'html'));