admin管理员组

文章数量:1402165

Previously I would use NPM for server side stuff and Bower for frontend. NPM would install to the node_modules/ directory and I had a .bowerrc to install those packages to public/lib.

Now I've begun to use Yarn instead of NPM; and since they are pretty much 1:1 patible it has been a smooth change.. However, now I'm wondering if I can ditch Bower and just use Yarn for everything. But I do not see a way (in either NPM or Yarn) to install normal packages to node_modules, but then have a sort of separate option to put some packages in public/... Something similar to the --dev option but instead it would be yarn add jquery --public. Does anything like this exist?

One option, of course, would be to install all packages to the public/ directory but I believe this is a bad practice (correct me if I'm wrong).

Another option might be to have a separate package.json in the public/ folder and run separate Yarn mands in there for frontend packages, but it's just a bit less convenient, I think; more error prone.

Previously I would use NPM for server side stuff and Bower for frontend. NPM would install to the node_modules/ directory and I had a .bowerrc to install those packages to public/lib.

Now I've begun to use Yarn instead of NPM; and since they are pretty much 1:1 patible it has been a smooth change.. However, now I'm wondering if I can ditch Bower and just use Yarn for everything. But I do not see a way (in either NPM or Yarn) to install normal packages to node_modules, but then have a sort of separate option to put some packages in public/... Something similar to the --dev option but instead it would be yarn add jquery --public. Does anything like this exist?

One option, of course, would be to install all packages to the public/ directory but I believe this is a bad practice (correct me if I'm wrong).

Another option might be to have a separate package.json in the public/ folder and run separate Yarn mands in there for frontend packages, but it's just a bit less convenient, I think; more error prone.

Share Improve this question asked Oct 16, 2017 at 16:46 KenmoreKenmore 1,5953 gold badges16 silver badges41 bronze badges 2
  • 2 Personally I would separate the public folder from the backend folder and manage the dependencies separately. This will give you a better overview of the dependencies per 'project' – Angular Dev Commented Oct 16, 2017 at 16:49
  • If you use build tools like grunt/gulp to concat/minify your stuff then you can install using npm and point your grunt config to node_modules. – user2652134 Commented Oct 16, 2017 at 17:05
Add a ment  | 

1 Answer 1

Reset to default 7

The norm pretty much is something like:

  1. Install packages via yarn
  2. Use a task runner such as gulp, or module loader & bundler such as webpack to create the bundles you need.
    • This all depends on your stack, there are obviously others, for example in the past I've used .NET's native bundling, which you can achieve the same as gulp/webpack... again this is for you to decide.

The gist of it is, install all the modules in a central place (using a package manager), then have a loader or other process grab and move the required assets to the location that you need to use them.

I'd suggest having a look at a kickstart project (pertaining to the stack that you're using) eg: I've used : Fountainjs in the past with success, or look into Yeoman if fountain doesnt strike your fancy (fyi. Fountain is built on top of Yeoman)

In pseudo mands:

1. yarn install     /// installs all assets
2. gulp build       /// cleans out current public folder, bundles & copies new
3. gulp serve       /// runs your app

本文标签: javascriptHow to use one package manager for backend and frontend (YarnNPM)Stack Overflow