@jakesidsmith/tsb 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -189,6 +189,8 @@ interface Config {
189
189
  outputIndexHTMLFor?: readonly ('build' | 'watch' | 'serve')[]; // Default: ['build', 'watch']
190
190
  // Whether to add script tag to body, head, or not at all
191
191
  insertScriptTag?: 'body' | 'head' | false; // Default: 'body'
192
+ // Whether add "defer" attribute to script tag.
193
+ scriptLoading?: 'blocking' | 'defer' | 'module'; // default 'blocking'
192
194
  // Whether React hot-loading is enabled
193
195
  reactHotLoading?: boolean; // Default: false
194
196
  // List of commands for which output bundles are hashed
package/dist/types.d.ts CHANGED
@@ -42,6 +42,10 @@ export interface Config {
42
42
  * @description Whether to add script tag to body, head, or not at all
43
43
  */
44
44
  insertScriptTag?: InsertScriptTag;
45
+ /**
46
+ * @description Whether add "defer" attribute to script tag.
47
+ */
48
+ scriptLoading?: 'blocking' | 'defer' | 'module';
45
49
  /**
46
50
  * @description Whether React hot-loading is enabled
47
51
  */
@@ -46,7 +46,7 @@ const createWebpackConfig = (configPath = constants_1.CONFIG_FILE_NAME, mode, co
46
46
  // Required
47
47
  main, outDir,
48
48
  // Base options
49
- clearOutDirBefore = [], mainOutSubDir, mainBundleName = 'bundle', tsconfigPath = path.resolve(process.cwd(), 'tsconfig.json'), indexHTMLPath, indexHTMLEnv = {}, outputIndexHTMLFor = ['build', 'watch'], insertScriptTag = 'body', reactHotLoading = false, hashFilesFor = ['build', 'watch'], additionalFilesToParse = [], env,
49
+ clearOutDirBefore = [], mainOutSubDir, mainBundleName = 'bundle', tsconfigPath = path.resolve(process.cwd(), 'tsconfig.json'), indexHTMLPath, indexHTMLEnv = {}, outputIndexHTMLFor = ['build', 'watch'], insertScriptTag = 'body', scriptLoading = 'blocking', reactHotLoading = false, hashFilesFor = ['build', 'watch'], additionalFilesToParse = [], env,
50
50
  // Dev server options
51
51
  hotLoading = true, host = '0.0.0.0', port = 8080, publicDir, publicPath, singlePageApp = true, headers, https, extendBabelPresets, extendBabelPlugins, extendWebpackPlugins, extendWebpackModuleRules, } = (0, config_1.getTsbConfig)(fullConfigPath);
52
52
  const fullTsconfigPath = (0, tsconfig_1.resolveTsconfigPath)(fullConfigDir, tsconfigPath);
@@ -85,11 +85,13 @@ const createWebpackConfig = (configPath = constants_1.CONFIG_FILE_NAME, mode, co
85
85
  filename: path.resolve(fullOutDir, 'index.html'),
86
86
  alwaysWriteToDisk: shouldOutputHTML,
87
87
  inject: insertScriptTag,
88
+ scriptLoading,
88
89
  templateParameters: indexHTMLEnv,
89
90
  }
90
91
  : {
91
92
  alwaysWriteToDisk: shouldOutputHTML,
92
93
  inject: insertScriptTag,
94
+ scriptLoading,
93
95
  meta: {
94
96
  viewport: 'width=device-width, initial-scale=1',
95
97
  },
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-config.js","sourceRoot":"","sources":["../src/webpack-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webpack-config.js","sourceRoot":"","sources":["../src/webpack-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakesidsmith/tsb",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "Dead simple TypeScript bundler, watcher, dev server, transpiler, and polyfiller",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/src/types.ts CHANGED
@@ -49,6 +49,10 @@ export interface Config {
49
49
  * @description Whether to add script tag to body, head, or not at all
50
50
  */
51
51
  insertScriptTag?: InsertScriptTag;
52
+ /**
53
+ * @description Whether add "defer" attribute to script tag.
54
+ */
55
+ scriptLoading?: 'blocking' | 'defer' | 'module';
52
56
  /**
53
57
  * @description Whether React hot-loading is enabled
54
58
  */
@@ -37,6 +37,7 @@ export const createWebpackConfig = (
37
37
  indexHTMLEnv = {},
38
38
  outputIndexHTMLFor = ['build', 'watch'],
39
39
  insertScriptTag = 'body',
40
+ scriptLoading = 'blocking',
40
41
  reactHotLoading = false,
41
42
  hashFilesFor = ['build', 'watch'],
42
43
  additionalFilesToParse = [],
@@ -102,11 +103,13 @@ export const createWebpackConfig = (
102
103
  filename: path.resolve(fullOutDir, 'index.html'),
103
104
  alwaysWriteToDisk: shouldOutputHTML,
104
105
  inject: insertScriptTag,
106
+ scriptLoading,
105
107
  templateParameters: indexHTMLEnv,
106
108
  }
107
109
  : {
108
110
  alwaysWriteToDisk: shouldOutputHTML,
109
111
  inject: insertScriptTag,
112
+ scriptLoading,
110
113
  meta: {
111
114
  viewport: 'width=device-width, initial-scale=1',
112
115
  },