Select correct environment.ts in webpack
Inside my webpack.config.js, I am returning the correct webpack config file based on passed env:
module.exports = (env) => {
return require(`./webpack.${env}.js`)
};
Inside my webpack.prod.js:
module.exports = {
entry: './src/app.ts',
target: 'node',
module: {
rules: [{test: /.tsx?$/, use: 'ts-loader'}]
},
mode: 'production',
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.js',
}
};
Then I have inside /src/environments, two environment files:
environment.ts
environment.prod.ts
In any of my other services, I refer to environment as:
import {environment} from '../environments/environment';
Actually I got this idea from angular-cli. And I would like to also use this in node.js. My question is how do I specify in the webpack to rename environment.prod.ts and use that when building for production?
node.js webpack
add a comment |
Inside my webpack.config.js, I am returning the correct webpack config file based on passed env:
module.exports = (env) => {
return require(`./webpack.${env}.js`)
};
Inside my webpack.prod.js:
module.exports = {
entry: './src/app.ts',
target: 'node',
module: {
rules: [{test: /.tsx?$/, use: 'ts-loader'}]
},
mode: 'production',
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.js',
}
};
Then I have inside /src/environments, two environment files:
environment.ts
environment.prod.ts
In any of my other services, I refer to environment as:
import {environment} from '../environments/environment';
Actually I got this idea from angular-cli. And I would like to also use this in node.js. My question is how do I specify in the webpack to rename environment.prod.ts and use that when building for production?
node.js webpack
add a comment |
Inside my webpack.config.js, I am returning the correct webpack config file based on passed env:
module.exports = (env) => {
return require(`./webpack.${env}.js`)
};
Inside my webpack.prod.js:
module.exports = {
entry: './src/app.ts',
target: 'node',
module: {
rules: [{test: /.tsx?$/, use: 'ts-loader'}]
},
mode: 'production',
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.js',
}
};
Then I have inside /src/environments, two environment files:
environment.ts
environment.prod.ts
In any of my other services, I refer to environment as:
import {environment} from '../environments/environment';
Actually I got this idea from angular-cli. And I would like to also use this in node.js. My question is how do I specify in the webpack to rename environment.prod.ts and use that when building for production?
node.js webpack
Inside my webpack.config.js, I am returning the correct webpack config file based on passed env:
module.exports = (env) => {
return require(`./webpack.${env}.js`)
};
Inside my webpack.prod.js:
module.exports = {
entry: './src/app.ts',
target: 'node',
module: {
rules: [{test: /.tsx?$/, use: 'ts-loader'}]
},
mode: 'production',
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.js',
}
};
Then I have inside /src/environments, two environment files:
environment.ts
environment.prod.ts
In any of my other services, I refer to environment as:
import {environment} from '../environments/environment';
Actually I got this idea from angular-cli. And I would like to also use this in node.js. My question is how do I specify in the webpack to rename environment.prod.ts and use that when building for production?
node.js webpack
node.js webpack
asked Nov 20 '18 at 1:38
iPhoneJavaDeviPhoneJavaDev
2642836
2642836
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
In node environment specific context is toggled with variable NODE_ENV
add a comment |
So this is what I did and it works as I expected. First I install file-replace-loader
, then I modified the webpack as follows:
const {resolve} = require('path');
...
module: {
rules: [{
test: /.tsx?$/,
use: 'ts-loader'
},{
test: /environment.ts?$/,
loader: 'file-replace-loader',
options: {
condition: true,
replacement: resolve('./src/environments/environment.prod.ts'),
async: true
}
}
]
...
I set the condition to true
since I am modifying the webpack.prod.js
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53385043%2fselect-correct-environment-ts-in-webpack%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
In node environment specific context is toggled with variable NODE_ENV
add a comment |
In node environment specific context is toggled with variable NODE_ENV
add a comment |
In node environment specific context is toggled with variable NODE_ENV
In node environment specific context is toggled with variable NODE_ENV
answered Nov 20 '18 at 2:36
bino santribino santri
312
312
add a comment |
add a comment |
So this is what I did and it works as I expected. First I install file-replace-loader
, then I modified the webpack as follows:
const {resolve} = require('path');
...
module: {
rules: [{
test: /.tsx?$/,
use: 'ts-loader'
},{
test: /environment.ts?$/,
loader: 'file-replace-loader',
options: {
condition: true,
replacement: resolve('./src/environments/environment.prod.ts'),
async: true
}
}
]
...
I set the condition to true
since I am modifying the webpack.prod.js
.
add a comment |
So this is what I did and it works as I expected. First I install file-replace-loader
, then I modified the webpack as follows:
const {resolve} = require('path');
...
module: {
rules: [{
test: /.tsx?$/,
use: 'ts-loader'
},{
test: /environment.ts?$/,
loader: 'file-replace-loader',
options: {
condition: true,
replacement: resolve('./src/environments/environment.prod.ts'),
async: true
}
}
]
...
I set the condition to true
since I am modifying the webpack.prod.js
.
add a comment |
So this is what I did and it works as I expected. First I install file-replace-loader
, then I modified the webpack as follows:
const {resolve} = require('path');
...
module: {
rules: [{
test: /.tsx?$/,
use: 'ts-loader'
},{
test: /environment.ts?$/,
loader: 'file-replace-loader',
options: {
condition: true,
replacement: resolve('./src/environments/environment.prod.ts'),
async: true
}
}
]
...
I set the condition to true
since I am modifying the webpack.prod.js
.
So this is what I did and it works as I expected. First I install file-replace-loader
, then I modified the webpack as follows:
const {resolve} = require('path');
...
module: {
rules: [{
test: /.tsx?$/,
use: 'ts-loader'
},{
test: /environment.ts?$/,
loader: 'file-replace-loader',
options: {
condition: true,
replacement: resolve('./src/environments/environment.prod.ts'),
async: true
}
}
]
...
I set the condition to true
since I am modifying the webpack.prod.js
.
answered Nov 22 '18 at 4:28
iPhoneJavaDeviPhoneJavaDev
2642836
2642836
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53385043%2fselect-correct-environment-ts-in-webpack%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown