6

I am new to webpack. Currently I am working on angular2 application with webpack. As part of requirement we want to have a settings file which should not be bundled so that one can change URL in settings.js file after bundle also.

Below is the code for two files.

settings.ts

const foo = {
    url:'localhost'
};
export { foo };

script.ts

import { foo }  from 'settings';

Both ts files will be compiled to js file before bundle. And now i want to exclude settings.ts file from bundle and want to copy setting.ts file separate in dist folder.

Below is the webpack.config file

loaders: [

            {
                test: /\.ts$/,
                loaders: ['awesome-typescript-loader', 
                          'angular2-template-loader'],
                exclude: [/\settings.ts$/]
            },
]

I found no luck with this.

I am able to copy settings.js file in dist folder by using CopyWebpackPlugin. But not able to exclude settings.ts file from bundling.

Below is the screenshot of folder structure. Webpack.config is on same level as src folder

enter image description here

Hardik Patel
  • 3,868
  • 1
  • 23
  • 37

2 Answers2

1

Now i am using angular 7 and putting file path in "assets" list in angular.json works for me.

 "assets": [
                 "src/assets",
                 "src/config/settings.json",

           ],
Hardik Patel
  • 3,868
  • 1
  • 23
  • 37
0

Try it like this:

exclude: [
  path.resolve(__dirname, '/settings.ts'),
]

As suggested on this GitHub issue.

Tome Pejoski
  • 1,582
  • 2
  • 10
  • 34
  • 1
    Tried exclude:[path.resolve(__dirname,'src/app/config/settings.ts')]. It gives me error "you may need appropriate loader to handle this file type" – Hardik Patel Dec 28 '16 at 10:02