File tree Expand file tree Collapse file tree
Open diff view settings
Expand file tree Collapse file tree
Open diff view settings
Original file line number Diff line number Diff line change @@ -1020,12 +1020,12 @@ node --import amaro/strip --watch-path=src --watch-preserve-output --test-isolat
10201020The priority in configuration is as follows:
10211021
102210221 . NODE\_ OPTIONS and command-line options
1023- 2 . Configuration file
1024- 3 . Dotenv NODE \_ OPTIONS
1023+ 2 . Dotenv NODE \_ OPTIONS
1024+ 3 . Configuration file
10251025
10261026Values in the configuration file will not override the values in the environment
1027- variables and command-line options, but will override the values in the ` NODE_OPTIONS `
1028- env file parsed by the ` --env-file ` flag.
1027+ variables, command-line options, or the ` NODE_OPTIONS ` env file parsed by the
1028+ ` --env-file ` flag.
10291029
10301030Keys cannot be duplicated within the same or different namespaces.
10311031
Original file line number Diff line number Diff line change @@ -879,6 +879,7 @@ static ExitCode InitializeNodeWithArgsInternal(
879879 HandleEnvOptions (per_process::cli_options->per_isolate ->per_env );
880880
881881 std::string node_options;
882+ std::string node_options_from_dotenv;
882883 auto env_files = node::Dotenv::GetDataFromArgs (*argv);
883884
884885 if (!env_files.empty ()) {
@@ -905,7 +906,8 @@ static ExitCode InitializeNodeWithArgsInternal(
905906 }
906907 }
907908
908- per_process::dotenv_file.AssignNodeOptionsIfAvailable (&node_options);
909+ per_process::dotenv_file.AssignNodeOptionsIfAvailable (
910+ &node_options_from_dotenv);
909911 }
910912
911913 std::string node_options_from_config;
@@ -935,9 +937,10 @@ static ExitCode InitializeNodeWithArgsInternal(
935937 errors->emplace_back (" The number of NODE_OPTIONS doesn't match "
936938 " the number of flags in the config file" );
937939 }
938- node_options += node_options_from_config;
939940 }
940941
942+ node_options = node_options_from_config + node_options_from_dotenv;
943+
941944#if !defined(NODE_WITHOUT_NODE_OPTIONS)
942945 bool should_parse_node_options =
943946 !(flags & ProcessInitializationFlags::kDisableNodeOptionsEnv );
Original file line number Diff line number Diff line change @@ -345,7 +345,7 @@ void Dotenv::AssignNodeOptionsIfAvailable(std::string* node_options) const {
345345 auto match = store_.find (" NODE_OPTIONS" );
346346
347347 if (match != store_.end ()) {
348- *node_options = match->second ;
348+ *node_options = " " + match->second ;
349349 }
350350}
351351
Original file line number Diff line number Diff line change @@ -92,17 +92,17 @@ test('should throw an error when a flag is declared twice', async () => {
9292 assert . strictEqual ( result . code , 9 ) ;
9393} ) ;
9494
95- test ( 'should override env-file' , onlyWithAmaroAndNodeOptions , async ( ) => {
95+ test ( 'should not override env-file' , onlyWithAmaroAndNodeOptions , async ( ) => {
9696 const result = await spawnPromisified ( process . execPath , [
9797 '--no-warnings' ,
9898 '--experimental-config-file' ,
9999 fixtures . path ( 'rc/transform-types.json' ) ,
100100 '--env-file' , fixtures . path ( 'dotenv/node-options-no-tranform.env' ) ,
101101 fixtures . path ( 'typescript/ts/transformation/test-enum.ts' ) ,
102102 ] ) ;
103- assert . strictEqual ( result . stderr , '' ) ;
104- assert . match ( result . stdout , / H e l l o , T y p e S c r i p t ! / ) ;
105- assert . strictEqual ( result . code , 0 ) ;
103+ assert . match ( result . stderr , / S y n t a x E r r o r / ) ;
104+ assert . strictEqual ( result . stdout , '' ) ;
105+ assert . strictEqual ( result . code , 1 ) ;
106106} ) ;
107107
108108test ( 'should not override NODE_OPTIONS' , onlyWithAmaro , async ( ) => {
You can’t perform that action at this time.
0 commit comments