In order to ensure changes made elsewhere are not overwritten, Themekit needs more
information than your configuration in your
config.yml. Themekit needs to store
exactly which versions of each asset you currently have on your machine and the
versions that you expect to be on shopify.
To do this Themekit uses a
theme.lock file in the root of your project (same
directory as your config file). These “lockfiles” look like this:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. assets/announcement-newbuybutton.svg: development: 2017-06-21T04:31:21-11:00 production: 2017-06-21T04:31:21-11:00 assets/app.js.liquid: development: 2017-07-18T06:10:40-11:00 production: 2017-07-18T06:10:40-11:00 ...
This is comparable to lockfiles in other package managers like Bundler, Cargo or Yarn.
The lock file will keep track of asset versions across all environments that are in
config.yml file. If you download an asset from one environment it will save
the versions from all other environments for that asset to lock down the expected
version that you will update in the future.
Managed by Themekit
theme.lock file is auto-generated and should be handled entirely by Themekit.
As you download/upload/replace with the Themekit CLI, it will automatically update
theme.lock file. Do not edit this file directly as it is easy to break something.
Check into source control
theme.lock files should be checked into source control (e.g. git or mercurial).
This allows Themekit to manage all asset versions across all machines, whether it
be your coworker’s laptop or a CI server.
How to disable
If you are certain of the changes you are making and the version checking is getting
in the way, pass the
--force flag to the command you are running.