1. 已有命令
mix app.start # Starts all registered apps
mix app.tree # Prints the application tree
mix archive # Lists installed archives
mix archive.build # Archives this project into a .ez file
mix archive.install # Installs an archive locally
mix archive.uninstall # Uninstalls archives
mix clean # Deletes generated application files
mix cmd # Executes the given command
mix compile # Compiles source files
mix deps # Lists dependencies and their status
mix deps.clean # Deletes the given dependencies' files
mix deps.compile # Compiles dependencies
mix deps.get # Gets all out of date dependencies
mix deps.tree # Prints the dependency tree
mix deps.unlock # Unlocks the given dependencies
mix deps.update # Updates the given dependencies
mix do # Executes the tasks separated by comma
mix ecto # Prints Ecto help information
mix ecto.create # Creates the repository storage
mix ecto.drop # Drops the repository storage
mix ecto.dump # Dumps the repository database structure
mix ecto.gen.migration # Generates a new migration for the repo
mix ecto.gen.repo # Generates a new repository
mix ecto.load # Loads previously dumped database structure
mix ecto.migrate # Runs the repository migrations
mix ecto.migrations # Displays the repository migration status
mix ecto.rollback # Rolls back the repository migrations
mix escript # Lists installed escripts
mix escript.build # Builds an escript for the project
mix escript.install # Installs an escript locally
mix escript.uninstall # Uninstalls escripts
mix format # Formats the given files/patterns
mix gettext.extract # Extracts translations from source code
mix gettext.merge # Merge template files into translation files
mix help # Prints help information for tasks
mix hex # Prints Hex help information
mix hex.audit # Shows retired Hex deps for the current project
mix hex.build # Builds a new package version locally
mix hex.config # Reads, updates or deletes local Hex config
mix hex.docs # Fetches or opens documentation of a package
mix hex.info # Prints Hex information
mix hex.organization # Manages Hex.pm organizations
mix hex.outdated # Shows outdated Hex deps for the current project
mix hex.owner # Manages Hex package ownership
mix hex.publish # Publishes a new package version
mix hex.repo # Manages Hex repositories
mix hex.retire # Retires a package version
mix hex.search # Searches for package names
mix hex.user # Manages your Hex user account
mix loadconfig # Loads and persists the given configuration
mix local # Lists local tasks
mix local.hex # Installs Hex locally
mix local.phoenix # Updates Phoenix locally
mix local.phx # Updates the Phoenix project generator locally
mix local.public_keys # Manages public keys
mix local.rebar # Installs Rebar locally
mix new # Creates a new Elixir project
mix phoenix.gen.html # Generates controller, model and views for an HTML based resource
mix phoenix.new # Creates a new Phoenix v1.3.2 application
mix phoenix.server # Starts applications and their servers
mix phx.digest # Digests and compresses static files
mix phx.digest.clean # Removes old versions of static assets.
mix phx.gen.channel # Generates a Phoenix channel
mix phx.gen.context # Generates a context with functions around an Ecto schema
mix phx.gen.embedded # Generates an embedded Ecto schema file
mix phx.gen.html # Generates controller, views, and context for an HTML resource
mix phx.gen.json # Generates controller, views, and context for a JSON resource
mix phx.gen.presence # Generates a Presence tracker
mix phx.gen.schema # Generates an Ecto schema and migration file
mix phx.gen.secret # Generates a secret
mix phx.new # Creates a new Phoenix v1.3.2 application
mix phx.new.ecto # Creates a new Ecto project within an umbrella project
mix phx.new.web # Creates a new Phoenix web project within an umbrella project
mix phx.routes # Prints all routes
mix phx.server # Starts applications and their servers
帮助命令使用:
比如:
mix help mix phx.gen.json
2. 查看路由(方便进行功能的实现)
mix phx.routes
参考:
Generated hello app
page_path GET / Hello.PageController :index
page_path GET /index/:name Hello.PageController :appdemo
user_path GET /user/:name Hello.UserController :index
demo_path GET /api/demo Hello.DemoController :index
demo_path GET /api/demo Hello.DemoController :index
demo_path GET /api/demo/:id/edit Hello.DemoController :edit
demo_path GET /api/demo/new Hello.DemoController :new
demo_path GET /api/demo/:id Hello.DemoController :show
demo_path POST /api/demo Hello.DemoController :create
demo_path PATCH /api/demo/:id Hello.DemoController :update
PUT /api/demo/:id Hello.DemoController :update
demo_path DELETE /api/demo/:id Hello.DemoController :delete
3. 生成脚手架代码 (phx.gen 开头的)
mix phx.gen.json Accounts User users --table cms_users
4. 生产环境构建
phoenix 依赖
mix deps.get --only prod
MIX_ENV=prod mix compile
资源(web)
brunch build --production (构建)
mix phx.digest (压缩)
启动
PORT=4001 MIX_ENV=prod mix phx.server
or
PORT=4001 MIX_ENV=prod iex -S mix phx.server
or 守护进程模式
MIX_ENV=prod PORT=4001 elixir --detached -S mix do compile, phx.server
5. 几个问题
因为新版phoenix 脚手架创建web 的目录已经调整到了lib目录 <app>_web 命名,使用旧版本的代码可能需要调整
如下图:
v1.3 之前的
v1.3 以及最新版本
6. 参考资料
https://hexdocs.pm/phoenix/deployment.html
https://hexdocs.pm/phoenix/phoenix_mix_tasks.html