Npm 使用“纱线”将包添加到自定义@frontend_组件或lib文件夹
从迁移并运行命令时 纱线安装 创建了@bower_components文件夹,并将所有bower/前端组件添加到此文件夹中../node_modules/@bower_components “依赖项”:{Npm 使用“纱线”将包添加到自定义@frontend_组件或lib文件夹,npm,bower,yarnpkg,yarn-workspaces,Npm,Bower,Yarnpkg,Yarn Workspaces,从迁移并运行命令时 纱线安装 创建了@bower_components文件夹,并将所有bower/前端组件添加到此文件夹中../node_modules/@bower_components “依赖项”:{ … “@bower_components/bootstrap”:“twbs/bootstrap”^3.3.7”, “@bower_components/jquery”:“jquery/jquery dist”^3.1.1, “@bower_components/lodash”:“lodash/
…
“@bower_components/bootstrap”:“twbs/bootstrap”^3.3.7”,
“@bower_components/jquery”:“jquery/jquery dist”^3.1.1,
“@bower_components/lodash”:“lodash/lodash”^4.17.12,
“@bower_组件/力矩”:“力矩/力矩”^2.19.1,
…} 如果需要,我需要创建从@bower_components迁移到@frontend_components或添加到public/lib文件夹。我该怎么做 纱线——cwd/public/lib添加lodash
bower away的工作方式是创建一个从
/bower\u组件
到/node\u模块/@bower\u组件
的符号链接:
bower away通过使用
并将它们全部添加到package.json
然后,包含bower依赖项的package.json
文件如下所示:
{
"dependencies": {
"@bower_components/bootstrap": "twbs/bootstrap#^3.3.7",
"@bower_components/jquery": "jquery/jquery-dist#^3.1.1",
"@bower_components/lodash": "lodash/lodash#^4.17.12",
"@bower_components/moment": "moment/moment#^2.19.1",
}
}
这在大多数情况下都有效。但在您的情况下,符号链接不起作用。我运行了相同的问题,我的修复方法是修改我的express服务器并将/bower\u组件
前端资源映射到/node\u modules/@bower\u组件
后端资源,如下所示:
新的
原创的
//app.use("/bower_components", express.static(path.join(__dirname, "/bower_components")));
如果不是您的情况,您可能需要手动更新对新node_modules/@bower_components
文件夹的前端引用,正如原作者建议的那样:
但最初,代码中唯一需要的更改是更改任何
使用节点模块/@bower\u组件参考bower\u组件
(尽管您可以在postinstall脚本中将其链接到其他位置)
bower away的工作方式是创建一个从
/bower\u组件
到/node\u模块/@bower\u组件
的符号链接:
bower away通过使用
并将它们全部添加到package.json
然后,包含bower依赖项的package.json
文件如下所示:
{
"dependencies": {
"@bower_components/bootstrap": "twbs/bootstrap#^3.3.7",
"@bower_components/jquery": "jquery/jquery-dist#^3.1.1",
"@bower_components/lodash": "lodash/lodash#^4.17.12",
"@bower_components/moment": "moment/moment#^2.19.1",
}
}
这在大多数情况下都有效。但在您的情况下,符号链接不起作用。我运行了相同的问题,我的修复方法是修改我的express服务器并将/bower\u组件
前端资源映射到/node\u modules/@bower\u组件
后端资源,如下所示:
新的
原创的
//app.use("/bower_components", express.static(path.join(__dirname, "/bower_components")));
如果不是您的情况,您可能需要手动更新对新node_modules/@bower_components
文件夹的前端引用,正如原作者建议的那样:
但最初,代码中唯一需要的更改是更改任何
使用节点模块/@bower\u组件参考bower\u组件
(尽管您可以在postinstall脚本中将其链接到其他位置)
我为解决这个问题而实现的变通方法是引入一个简单的脚本,并用一个新的密钥更新package.json 在package.json下(用于处理前端所需的所有与UI相关的依赖项) migrateUI.js
const uipackage = require('./package.json');
const packageName = Object.keys(uipackage.uidependencies);
const dir = 'public/libs';
//if the folder already exists, it ignores else creates.
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
for (let i = 0; i < packageName.length; i++) {
const element = packageName[i];
const source = path.resolve('node_modules/' + element);
const target = path.resolve('public/libs/' + element); //custom lib folder to save all UI dependencies
if (!fs.existsSync(target)) {
fs.symlinkSync(source, target, 'dir', (err) => {
if (err && err.code !== 'EEXIST') {
console.log('Error creating dependecny symlink - ', err);
} else {
console.log('Symlink for dependency created');
}
});
}
}
constuipackage=require('./package.json');
const packageName=Object.keys(uipackage.uidependencies);
const dir='public/libs';
//如果该文件夹已存在,它将忽略其他创建的文件夹。
如果(!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
for(设i=0;i{
if(err&&err.code!=='EEXIST'){
console.log('Error creating dependecny symlink-',err);
}否则{
log('Symlink for dependency created');
}
});
}
}
我为解决此问题而实施的变通方法是引入一个简单的脚本,并使用新的密钥更新package.json
在package.json下(用于处理前端所需的所有与UI相关的依赖项)
migrateUI.js
const uipackage = require('./package.json');
const packageName = Object.keys(uipackage.uidependencies);
const dir = 'public/libs';
//if the folder already exists, it ignores else creates.
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
for (let i = 0; i < packageName.length; i++) {
const element = packageName[i];
const source = path.resolve('node_modules/' + element);
const target = path.resolve('public/libs/' + element); //custom lib folder to save all UI dependencies
if (!fs.existsSync(target)) {
fs.symlinkSync(source, target, 'dir', (err) => {
if (err && err.code !== 'EEXIST') {
console.log('Error creating dependecny symlink - ', err);
} else {
console.log('Symlink for dependency created');
}
});
}
}
constuipackage=require('./package.json');
const packageName=Object.keys(uipackage.uidependencies);
const dir='public/libs';
//如果该文件夹已存在,它将忽略其他创建的文件夹。
如果(!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
for(设i=0;i{
if(err&&err.code!=='EEXIST'){
console.log('Error creating dependecny symlink-',err);
}否则{
log('Symlink for dependency created');
}
});
}
}