node app.use()src表示local,dist表示prod

时间:2018-01-02 22:35:54

标签: node.js gulp

我正在使用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是变量还是有更好的方法在多个环境之间“使用”这些?

3 个答案:

答案 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。然后,您可以使用nodeapp.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'));