Exclude ts/js file from bundle using webpack

7.2k views Asked by At

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

2

There are 2 answers

1
Tome Pejoski On

Try it like this:

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

As suggested on this GitHub issue.

0
Hardik Patel On

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",

           ],