node app.use()src表示local,dist表示prod
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node app.use()src表示local,dist表示prod相关的知识,希望对你有一定的参考价值。
我正在更新一个有角度的1.6网络应用程序与gulp。我有本地开发人员的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还是有更好的方法在多个环境之间“使用”这些?
答案
使用环境变量。
app.use('/scripts', express.static(`${__dirname}/${process.env.client_directory}`));
然后在运行应用程序的过程中设置环境变量。
另一答案
您可以使用像dotenv这样的模块将.env
文件中的环境变量加载到process.env
中。然后,您可以使用node
在app.set('env', 'development')
中设置应用程序的环境。
另一答案
谢谢(你的)信息。
此外,基于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'));
以上是关于node app.use()src表示local,dist表示prod的主要内容,如果未能解决你的问题,请参考以下文章
在 Express/Node 应用程序中比较/实现 `app.use(cors(corsOptions));` 和 `app.options('*', cors(corsOptions));`