diff --git a/src/components/taglib/TransformHelper/getComponentFiles.js b/src/components/taglib/TransformHelper/getComponentFiles.js index ec2993a79..f395929ab 100644 --- a/src/components/taglib/TransformHelper/getComponentFiles.js +++ b/src/components/taglib/TransformHelper/getComponentFiles.js @@ -17,13 +17,15 @@ function getComponentFiles(filename) { var styleMatch = new RegExp('^'+fileMatch+'style\\.\\w+$'); var componentMatch = new RegExp('^'+fileMatch+'component\\.\\w+$'); var splitComponentMatch = new RegExp('^'+fileMatch+'component-browser\\.\\w+$'); + var packageMatch = new RegExp('^'+fileMatch+'browser\\.\\json$'); var dirname = path.dirname(filename); var foundFiles = { styles: [], file: null, - browserFile: null + browserFile: null, + package: null }; var dirFiles = fs.readdirSync(dirname); @@ -38,6 +40,8 @@ function getComponentFiles(filename) { foundFiles.browserFile = file; } else if (componentMatch.test(file)) { foundFiles.file = file; + } else if (packageMatch.test(file)) { + foundFiles.package = file; } } diff --git a/src/components/taglib/TransformHelper/handleRootNodes.js b/src/components/taglib/TransformHelper/handleRootNodes.js index 32b8a75a0..fd3ed097c 100644 --- a/src/components/taglib/TransformHelper/handleRootNodes.js +++ b/src/components/taglib/TransformHelper/handleRootNodes.js @@ -160,6 +160,10 @@ module.exports = function handleRootNodes() { context.addDependency('./' + styleFile); }); + if (componentFiles.package) { + context.addDependency('package: ./' + componentFiles.package); + } + if (componentFiles.file) { let file = componentFiles.file; diff --git a/test/autotests/components-compilation/browser-json-dependency/browser.json b/test/autotests/components-compilation/browser-json-dependency/browser.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/browser.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/autotests/components-compilation/browser-json-dependency/expected.js b/test/autotests/components-compilation/browser-json-dependency/expected.js new file mode 100644 index 000000000..110662787 --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/expected.js @@ -0,0 +1,17 @@ +"use strict"; + +var marko_template = module.exports = require("marko/src/html").t(__filename); + +function render(input, out) { + var data = input; + + out.w("YOLO"); +} + +marko_template._ = render; + +marko_template.meta = { + deps: [ + "package: ./browser.json" + ] + }; diff --git a/test/autotests/components-compilation/browser-json-dependency/index.marko b/test/autotests/components-compilation/browser-json-dependency/index.marko new file mode 100644 index 000000000..ee6b6478e --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/index.marko @@ -0,0 +1 @@ +-- YOLO \ No newline at end of file