@changke/staticnext-build 0.2.4 → 0.3.2

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/CHANGELOG.md CHANGED
@@ -4,27 +4,33 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ### 0.2.4
7
+ ## 0.3.2
8
+ 2023-07-09
9
+ ### Added
10
+ - Support additional "source/target" pairs in `copy` task
11
+ - Parameter `external` for esbuild when building CSS
12
+
13
+ ## 0.2.4
8
14
  2023-07-01
9
15
  ### Changed
10
16
  - Updated `esbuild` to v0.18.11
11
17
 
12
- ### 0.2.3
18
+ ## 0.2.3
13
19
  2023-06-30
14
20
  ### Changed
15
21
  - Code refactoring; Typedefs in external file
16
22
 
17
- ### 0.2.2
23
+ ## 0.2.2
18
24
  2023-06-28
19
25
  ### Changed
20
26
  - Updated `esbuild` to v0.18.10
21
27
 
22
- ### 0.2.1
28
+ ## 0.2.1
23
29
  2023-06-25
24
30
  ### Changed
25
31
  - Updated `esbuild` to v0.18.9
26
32
 
27
- ### 0.2.0
33
+ ## 0.2.0
28
34
  2023-06-24
29
35
  ### Changed
30
36
  - Better merging object supports nested object values
package/build.mjs CHANGED
@@ -32,7 +32,7 @@ const tasks = {
32
32
  {sources: [`${conf.sourceRoot}/*`, `!${conf.sourceRoot}/*.d.ts`], target: conf.targetRoot},
33
33
  {sources: `${srcPaths.assets}/**/*`, target: tgtPaths.assets},
34
34
  {sources: `${srcPaths.modules}/**/assets/**/*`, target: tgtPaths.moduleAssets}
35
- ]),
35
+ ].concat(Config.getCopyPairs(conf.copyPairs, conf.sourceRoot, tgtPaths.assets))),
36
36
  markdown: () => markdown(
37
37
  srcPaths.markdown,
38
38
  [srcPaths.prototype, srcPaths.modules],
@@ -51,7 +51,7 @@ const tasks = {
51
51
  `${srcPaths.css}/index.css`,
52
52
  `${srcPaths.modules}/**/*.css`,
53
53
  `!${srcPaths.modules}/**/_*.css`
54
- ], tgtPaths.assets)
54
+ ], tgtPaths.assets, [`${conf.assetsUrlPath}/*`])
55
55
  };
56
56
 
57
57
  const paraDev = () => {
package/lib/config.mjs CHANGED
@@ -78,6 +78,24 @@ class Config {
78
78
  });
79
79
  return [mainEntryPath].concat(moduleEntryFiles);
80
80
  };
81
+
82
+ /**
83
+ * Build (additional) copy pairs
84
+ *
85
+ * @param {STPair[]} copyPairs
86
+ * @param {string} sourceBase
87
+ * @param {string} targetBase
88
+ * @param {boolean} appendSourcePath
89
+ */
90
+ getCopyPairs = (copyPairs, sourceBase, targetBase, appendSourcePath = false) => {
91
+ return copyPairs.map(pr => {
92
+ if (appendSourcePath) {
93
+ pr.sources = `${appendSourcePath}${pr.sources}`;
94
+ }
95
+ pr.target = `${targetBase}${pr.target}`;
96
+ return pr;
97
+ });
98
+ };
81
99
  }
82
100
 
83
101
  const config = new Config();
@@ -1,11 +1,5 @@
1
1
  import cpy from 'cpy';
2
2
 
3
- /**
4
- * @typedef {Object} STPair
5
- * @property {(string|string[])} sources
6
- * @property {string} target
7
- */
8
-
9
3
  /**
10
4
  * Copy (different) assets
11
5
  *
@@ -14,7 +8,7 @@ import cpy from 'cpy';
14
8
  */
15
9
  const copy = (sourceTargetPairs) => {
16
10
  console.log('=> copy');
17
- return Promise.all(sourceTargetPairs.map(pair => cpy(pair.sources, pair.target)));
11
+ return Promise.all(sourceTargetPairs.map(pair => cpy(pair.sources, pair.target, pair.opts)));
18
12
  };
19
13
 
20
14
  export {copy};
@@ -8,9 +8,10 @@ import isEnvProd from '../is-prod.mjs';
8
8
  *
9
9
  * @param {string[]} sources
10
10
  * @param {string} targetPath
11
+ * @param {string[]} external
11
12
  * @return {Promise}
12
13
  */
13
- const styles = (sources, targetPath) => {
14
+ const styles = (sources, targetPath, external = []) => {
14
15
  console.log('=> styles');
15
16
  return globby(sources).then(entries => {
16
17
  return build({
@@ -19,7 +20,8 @@ const styles = (sources, targetPath) => {
19
20
  target: 'es2021',
20
21
  outdir: targetPath,
21
22
  sourcemap: !isEnvProd(),
22
- minify: isEnvProd()
23
+ minify: isEnvProd(),
24
+ external: external
23
25
  });
24
26
  });
25
27
  };
package/lib/typedefs.mjs CHANGED
@@ -14,6 +14,15 @@
14
14
  * @property {string=} markdown Path for markdown files
15
15
  */
16
16
 
17
+ /**
18
+ * Source/Target pairs for "copy" task
19
+ *
20
+ * @typedef {Object} STPair
21
+ * @property {(string|string[])} sources
22
+ * @property {string} target
23
+ * @property {Object=} opts
24
+ */
25
+
17
26
  /**
18
27
  * Helper to create an array with input source TS files for esbuild
19
28
  *
@@ -48,6 +57,7 @@
48
57
  * @property {string} assetsUrlPath Path of assets used in URL for resource loading etc.
49
58
  * @property {boolean} markdownEnabled Enable markdown feature or not
50
59
  * @property {Object} njkGlobals Global variables assigned to Nunjucks compiler
60
+ * @property {STPair[]=} copyPairs Additional pairs for copy task
51
61
  */
52
62
 
53
63
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@changke/staticnext-build",
3
- "version": "0.2.4",
3
+ "version": "0.3.2",
4
4
  "description": "Build scripts extracted from StaticNext seed project",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -26,9 +26,9 @@
26
26
  "cpy": "^10.1.0",
27
27
  "del": "^7.0.0",
28
28
  "esbuild": "^0.18.11",
29
- "globby": "^13.2.0",
29
+ "globby": "^13.2.2",
30
30
  "highlight.js": "^11.8.0",
31
- "marked": "^5.1.0",
31
+ "marked": "^5.1.1",
32
32
  "marked-highlight": "^2.0.1",
33
33
  "marked-xhtml": "^1.0.1",
34
34
  "nunjucks": "^3.2.4"